Как получить поле 'type' дескриптор из ctypes Поле структуры или объединения

У меня есть структура с разными полями типа данных. Я хотел бы пройтись по полям структуры, проверить тип данных и установить для поля соответствующее значение.

У меня есть доступ к размеру и смещению поля через атрибуты .size и .offset поля. Как я могу получить "тип" атрибут поля? Использование типа (значения) не печатает тип данных ctypes для конкретного поля. Если я печатаю значение , то я действительно вижу тип данных ctypes, но, похоже, нет атрибута для прямого доступа к нему.

Как я могу напрямую получить доступ к дескриптору поля типа?

from ctypes import *

class A(Structure):
    _fields_ = [("one", c_long),
                ("two", c_char),
                ("three", c_byte)]

>>> A.one
<Field type=c_long, ofs=0, size=4>
>>> A.one.offset
0
>>> A.one.size
4
>>> type(A.one)
<class '_ctypes.CField'>

В идеале я хотел бы получить тип поля, подобный приведенному ниже фрагменту ...

>>> A.one.type
c_long
5
задан Iñaqui 19 May 2011 в 15:38
поделиться