Можно ли изменить определение _fields_
для ctypes.Structure
после его импорта?
Что-то вроде:
from ctypes import *
class A_STRUCT(Structure):
_fields_ = [("one",c_int)]
A_STRUCT._fields_.append(("two",c_int))
x = A_STRUCT()
print x.one
print x.two
Не удивительно, что это не с:
0
Traceback (most recent call last):
File "structEnumTest.py", line 10, in <module>
print x.two
AttributeError: 'A_STRUCT' object has no attribute 'two'
РЕДАКТИРОВАТЬ
Мой вариант использования состоит в том, что у меня есть две версии A_STRUCT
.Версия 2 такая же, с дополнительными полями, добавленными в конец первой версии.Я надеялся избежать чего-то подобного.Я не знаю, какая версия структуры нужна до времени выполнения.
class A_STRUCT_V1(Structure):
_fields_ = [("one",c_int)]
class A_STRUCT_V2(Structure):
_fields_ = [("one",c_int),("two",c_int)]