当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python ctypes.Structure._anonymous_用法及代码示例


用法:

_anonymous_

列出未命名(匿名)字段名称的可选序列。 _anonymous_必须在分配_fields_时已经定义,否则无效。

此变量中列出的字段必须是结构或联合类型字段。 ctypes 将在允许直接访问嵌套字段的结构类型中创建说明符,而无需创建结构或联合字段。

这是一个示例类型(Windows):

class _U(Union):
    _fields_ = [("lptdesc", POINTER(TYPEDESC)),
                ("lpadesc", POINTER(ARRAYDESC)),
                ("hreftype", HREFTYPE)]

class TYPEDESC(Structure):
    _anonymous_ = ("u",)
    _fields_ = [("u", _U),
                ("vt", VARTYPE)]

TYPEDESC 结构说明了一种 COM 数据类型,vt 字段指定联合字段中的哪一个是有效的。由于u 字段被定义为匿名字段,因此现在可以直接从 TYPEDESC 实例访问成员。 td.lptdesctd.u.lptdesc 是等价的,但前者更快,因为它不需要创建临时联合实例:

td = TYPEDESC()
td.vt = VT_PTR
td.lptdesc = POINTER(some_type)
td.u.lptdesc = POINTER(some_type)

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 ctypes.Structure._anonymous_。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。