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

Various built-in types for type hinting are provided. Only GenericAlias is exposed to C.

PyObject* `Py_GenericAlias`(PyObject *origin, PyObject *args)

  Create a GenericAlias object. Equivalent to calling the Python class `types.GenericAlias`. The origin and args arguments set the `GenericAlias`'s `__origin__` and `__args__` attributes respectively. origin should be a `PyTypeObject*`, and args can be a `PyTupleObject*` or any `PyObject*`. If args passed is not a tuple, a 1-tuple is automatically constructed and `__args__` is set to `(args,)`. Minimal checking is done for the arguments, so the function will succeed even if origin is not a type. The `GenericAlias`'s `__parameters__` attribute is constructed lazily from `__args__`. On failure, an exception is raised and `NULL` is returned.

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

      ...
      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 で追加.