У меня есть структура с разными полями типа данных. Я хотел бы перебрать поля структуры, проверить тип данных и установить для поля соответствующее значение.
У меня есть доступ к размеру и смещению поля через атрибуты .size и .offset поля. Как я могу получить атрибут «тип» поля? Использование type(value) не печатает тип данных 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