sor*_*rin 6 python buffer wxpython python-2.5
如何在Python缓冲区对象中对一组连续值进行快速重置?
主要是我正在寻找一个memset :)
PS.该解决方案应该与Python 2.5一起使用并修改缓冲区本身(无副本).
ctypes 包内置了一个 memset 函数。Ctypes 确实可以与 Python 2.5 一起使用,但默认情况下不包含在内。您将需要单独安装。
def memsetObject(bufferObject):
"Note, dangerous"
import ctypes
data = ctypes.POINTER(ctypes.c_char)()
size = ctypes.c_int() # Note, int only valid for python 2.5
ctypes.pythonapi.PyObject_AsCharBuffer(ctypes.py_object(bufferObject), ctypes.pointer(data), ctypes.pointer(size))
ctypes.memset(data, 0, size.value)
testObject = "sneakyctypes"
memsetObject(testObject)
print repr(testObject)
# '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7101 次 |
| 最近记录: |