我想创建一个ctypes.c_int32的列表
我已阅读并理解List of lists changes reflected across sublists unexpectedly。
无论我做什么,我都会继续创建一个c_int32实例的列表。这适用于int或浮点数或什么不适用。具体来说,我不能让ctypes工作。
f=[ctypes.c_int32]*10
但是f [0] IS f [1],所以......
f[0].value=1
也改变了f [1]。我知道它为什么这样做。我如何让它停下来。也就是说,如何使列表成为c_int32的所有唯一实例?
答案 0 :(得分:0)
这是一个经典的Python错误。要解决此问题,您可以将列表创建为:
f = [ctypes.c_int32() for i in range(10)]
这将做你想要的。另一个(更干净)选项是通过以下方式创建一个ctypes数组:
f = (ctypes.c_int32 * 10)()