類型注解對象?
提供幾種用于類型提示的內(nèi)置類型。 目前存在兩種類型 -- GenericAlias 和 Union。 只有 GenericAlias
會向 C 開放。
-
PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)?
- Part of the Stable ABI since version 3.9.
創(chuàng)建一個 GenericAlias 對象。相當于調(diào)用 Python 類
types.GenericAlias
。參數(shù) origin 和 args 分別設(shè)置GenericAlias
's__origin__
屬性和__args__
屬性。 origin 應(yīng)該是 PyTypeObject* 類型, args 可以是 PyTupleObject* 類型或者任意PyObject*
類型。如果傳遞的 args 不是一個元組,則自動構(gòu)建一個 1 元元組,并將__args__
設(shè)置為(args,)
。對參數(shù)進行了最小限度的檢查,因此即使 origin 不是類型,函數(shù)也會成功。GenericAlias
的__parameters__
屬性是通過__args__
懶加載的。如果失敗,則觸發(fā)異常并返回NULL
。下面是一個如何創(chuàng)建一個擴展類型泛型的例子:
... static PyMethodDef my_obj_methods[] = { // Other methods. ... {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, "See PEP 585"} ... }
參見
數(shù)據(jù)模型的方法
__class_getitem__()
。3.9 新版功能.
-
PyTypeObject Py_GenericAliasType?
- Part of the Stable ABI since version 3.9.
由
Py_GenericAlias()
所返回的對象的 C 類型。等價于 Python 中的types.GenericAlias
。3.9 新版功能.