¿Cómo obtener elementos de la estructura ctype con introspección?
No pude encontrar nada que me ayudara con este tipo de problema: estoy tratando de obtener un desplazamiento de un atributo que es parte de estructuras anidadas como:
data_types.py
class FirstStructure (ctypes.Structure):
_fields_ = [('Junk', ctypes.c_bool),
('ThisOneIWantToGet', ctypes.c_int8)
]
class SecondStructure (ctypes.Structure):
_fields_ = [('Junk', ctypes.c_double),
('Example', FirstStructure)
]
o importante es mencionar que solo sé el nombre de la estructura principaSecondStructure
y no tengo ni idea de cuántas estructuras de anidamiento pueden estar allí.
o que quiero hacer aquí es obtener un desplazamiento deThisOneIWantToGet
atributo desde el comienzo deSecondStructure
.
Sé que hayctypes.adressof
método que funciona en objetos ctypes. ¿Hay alguna forma simple de obtener un objeto de parámetros anidados para poder hacer algo como esto:
do_something.py
import data_types as dt
par_struct_obj = getattr(dt, 'SecondStructure')
par_obj = getattr(par_struct_obj , 'ThisOneIWantToGet')
print ctypes.addressof(parameter) - ctypes.addressof(parent_structure)