在数组中指定数组元素的惯用方法是什么 ctypes.Structure
? 例如,假设:
from ctypes import Structure, c_float
class Foo(Structure):
_fields_ = (
('arr', c_float*3),
)
values = [1.1, 2.2, 3.3]
我希望能够做到:
foo = Foo()
foo.arr = values
但这抱怨类型不匹配。
typeerror:应为c_float_array_3示例,获取列表
我正在添加一个答案,说明我的观点,但我有兴趣知道任何更明确的答案。
1条答案
按热度按时间busg9geu1#
我采用的解决方案是:
而更详细的选项是:
请注意,这两个选项都允许
values
更短(即0到3个元素),缺少的条目用零填充。如果值包含的条目过多,将引发错误。这与c中的数组初始化是一致的,这恰好是我希望代码执行的操作,但对于其他情况可能过于宽松。