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

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__", (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 で追加.
