在python中,使用ctypes,以下是合法的:
from ctypes import *
class POINT(Structure):
_fields_ = [("x", c_int),
("y", c_int)]
p = POINT(10,20)
sum = p.x + p.y
但这是如何运作的?我的意思是p.x是如何完全合法的?什么样的技巧提供了这个? 感谢。
答案 0 :(得分:2)
当您初始化子类的实例Structure
类时,它会读取_fields_
并根据该列表中的字段名称关联属性。
这一切都在C中完成,因此如果您想确切了解它是如何完成的,您需要使用源,特别是Struct_type
的定义和_init_pos_args
函数{{ 3}}