【发布时间】:2016-03-09 23:09:23
【问题描述】:
我想使用 cffi 从头文件中获取枚举的完整列表。但是我看到了一个奇怪的行为:通过观察对象,我正在强制改变底层__dict__:
>>> from cffi import FFI
>>> ffi = FFI()
>>> ffi.cdef('typedef enum {RANDOM, IMMEDIATE, SEARCH} strategy;')
>>> c = ffi.dlopen('c')
# the dictionary is empty
>>> print c.__dict__
{}
>>> dir(c)
# the dictionary is populated
>>> print c.__dict__
{'SEARCH': 2, 'RANDOM': 0, 'IMMEDIATE': 1}
我猜__dict__ 在类上的第一个getattr() 被调用之前不会填充,但真正的问题是:dir() 填充__dict__ 是做什么的?调用hasattr() 似乎也能做同样的事情。
【问题讨论】:
标签: python python-cffi