型ヒントのためのオブジェクト

Various built-in types for type hinting are provided. Currently, two types exist -- GenericAlias and Union. Only GenericAlias is exposed to C.

PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)
Part of the Stable ABI since version 3.9.

GenericAlias オブジェクトを生成します。Pythonクラス types.GenericAlias を呼び出すことと同等です。引数 originargsGenericAlias__origin__ および __args__ 属性をそれぞれ設定します。 originPyTypeObject* でなければならず、 argsPyTupleObject* または任意の PyObject* です。 args がタプルでない場合には1タプルが自動的に生成され、__args__ には (args,) が設定されます。引数チェックは最小限なため、たとえ origin が型を示すオブジェクトでなくても関数呼び出しは成功します。GenericAlias__parameters__ 属性は __args__ から必要に応じて遅延生成されます。失敗した場合、例外が送出されて NULL を返します。

以下は拡張の型をジェネリックにする例です。

...
static PyMethodDef my_obj_methods[] = {
    // Other methods.
    ...
    {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, "See PEP 585"}
    ...
}

参考

データモデルメソッド __class_getitem__()

バージョン 3.9 で追加.

PyTypeObject Py_GenericAliasType
Part of the Stable ABI since version 3.9.

Py_GenericAlias() により返されるCの型オブジェクトです。Pythonの types.GenericAlias と同等です。

バージョン 3.9 で追加.