ctypes.py_object 的属性
the attribute of ctypes.py_object
我正在尝试创建一个 python 数组,但遇到以下代码问题
def __init__(self, size):
assert size>0, "Array size must be > 0"
self._size = size
# Create the array structure using the ctypes module.
arraytype = ctypes.py_object * size
self._elements = arraytype()
在初始化中,它使用ctypes创建一个数组,最后两行我不太明白。我试着把它们改成一行
self._elements = ctypes.py_object() * size
但是它不起作用并给我错误
TypeError: unsupported operand type(s) for *: 'py_object' and 'int'
谁能帮我解释一下?
您想乘以 ()
简单删除括号就可以了
self._elements = ctypes.py_object * size
ctypes.py_object
是一个类型
ctypes.py_object * size
是一个类型
ctypes.py_object()
是一个类型的实例
你要做的是先把ctypes.py_object * size
类型,然后实例化它:
self._elements = (ctypes.py_object * size)()
虽然您可能想要使用 Python 列表,但我不确定您是否需要 ctypes 数组。示例:
self._elements = [None] * size
这会起作用self._elements = (size*ctypes.py_object)( )
我正在尝试创建一个 python 数组,但遇到以下代码问题
def __init__(self, size):
assert size>0, "Array size must be > 0"
self._size = size
# Create the array structure using the ctypes module.
arraytype = ctypes.py_object * size
self._elements = arraytype()
在初始化中,它使用ctypes创建一个数组,最后两行我不太明白。我试着把它们改成一行
self._elements = ctypes.py_object() * size
但是它不起作用并给我错误
TypeError: unsupported operand type(s) for *: 'py_object' and 'int'
谁能帮我解释一下?
您想乘以 ()
简单删除括号就可以了
self._elements = ctypes.py_object * size
ctypes.py_object
是一个类型ctypes.py_object * size
是一个类型ctypes.py_object()
是一个类型的实例
你要做的是先把ctypes.py_object * size
类型,然后实例化它:
self._elements = (ctypes.py_object * size)()
虽然您可能想要使用 Python 列表,但我不确定您是否需要 ctypes 数组。示例:
self._elements = [None] * size
这会起作用self._elements = (size*ctypes.py_object)( )