¿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)

Respuestas a la pregunta(1)

Su respuesta a la pregunta