型別提示物件¶
提供了各種用於型別提示的內建型別。目前存在兩種型別 —— GenericAlias 和 Union。只有 GenericAlias
暴露給 C。
-
PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)¶
- 自 3.9 版本起屬於 穩定 ABI 的一部分。
建立一個 GenericAlias 物件。等同於呼叫 Python 類
types.GenericAlias
。origin 和 args 引數分別設定GenericAlias
的__origin__
和__args__
屬性。origin 應該是一個 PyTypeObject*,而 args 可以是一個 PyTupleObject* 或任何PyObject*
。如果傳遞的 args 不是一個元組,則會自動構造一個 1 元組,並且__args__
設定為(args,)
。對引數執行的檢查最少,因此即使 origin 不是型別,該函式也會成功。GenericAlias
的__parameters__
屬性是從__args__
延遲構建的。失敗時,會引發異常並返回NULL
。這是一個如何使擴充套件型別泛型的示例
... static PyMethodDef my_obj_methods[] = { // Other methods. ... {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, "See PEP 585"} ... }
另請參閱
資料模型方法
__class_getitem__()
。在 3.9 版本中新增。
-
PyTypeObject Py_GenericAliasType¶
- 自 3.9 版本起屬於 穩定 ABI 的一部分。
由
Py_GenericAlias()
返回的物件的 C 型別。等同於 Python 中的types.GenericAlias
。在 3.9 版本中新增。