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

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)
    * 次に属します: Stable ABI (バージョン 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__()".

   バージョン 3.9 で追加.

PyTypeObject Py_GenericAliasType
    * 次に属します: Stable ABI (バージョン 3.9 より).*

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

   バージョン 3.9 で追加.
