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

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` を呼び出すことと同等です。引数 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"}
          ...
      }

  参考

  The data model method `__class_getitem__()`.

  Added in version 3.9.

PyTypeObject Py_GenericAliasType
  Part of the Stable ABI since version 3.9.

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

  Added in version 3.9.