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