型別提示物件

提供了各種用於型別提示的內建型別。目前存在兩種型別 —— GenericAliasUnion。只有 GenericAlias 暴露給 C。

PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)
自 3.9 版本起屬於 穩定 ABI 的一部分。

建立一個 GenericAlias 物件。等同於呼叫 Python 類 types.GenericAliasoriginargs 引數分別設定 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 版本中新增。