タイプヒントのオブジェクト
型ヒント用のさまざまな組み込み型が用意されています。 現在、 GenericAlias と Union の2つのタイプが存在します。 GenericAlias
のみがCにさらされます。
- PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)
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__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, "See PEP 585"} ... }
も参照してください
データモデルメソッド
__class_getitem__()
。バージョン3.9の新機能。
- PyTypeObject Py_GenericAliasType
Py_GenericAlias()によって返されるオブジェクトのCタイプ。 Pythonの types.GenericAlias と同等です。
バージョン3.9の新機能。