用於型別提示的物件¶
提供了各種用於型別提示的內建型別。目前,存在兩種型別 – 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 版本中新增。