當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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_。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。