【发布时间】:2015-01-11 17:00:01
【问题描述】:
类似于this 问题,我想从 Python 打印 C 结构的成员。
我实现了以下功能:
def print_ctypes_obj(obj, indent=0):
for fname, fvalue in obj._fields_:
if hasattr(fvalue, '_fields_'):
print_ctypes_obj(fvalue, indent+4)
else:
print '{}{} = {}'.format(' '*indent, fname, getattr(obj, fname))
想法是,如果字段本身具有_fields_ 属性,则它是一个结构,否则为普通字段,因此打印它。递归工作正常,但在第一级之后我得到repr 打印字符串而不是值。例如:
我期望的输出是这样的:
富 = 1 酒吧 = 2 巴兹 = 3 innerFoo = 5 内条 = 23 内巴兹 = 56 quz = 4我的错误是什么?
【问题讨论】:
标签: python c introspection