Python

타입 힌트를 위한 객체

형 힌팅용 다양한 내장 타입이 제공됩니다. 현재 두 가지 타입이 존재합니다. GenericAliasUnion 입니다. C에 노출되는 것은 GenericAlias 뿐입니다.

PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)
상의 안정 ABI 버전 3.9 이후로.

GenericAlias 객체를 생성합니다. 이는 Python 클래스 types.GenericAlias 를 호출하는 것과 같습니다. originargs 인수는 각각 GenericAlias__origin____args__ 속성을 설정합니다. originPyTypeObject* 이어야 하며, argsPyTupleObject* 또는 모든 PyObject*`일 수 있습니다. 만약 전달된 *args*가 튜플이 아니면, 자동으로 1-튜플이 구성되고 `__args__`는 ``(args,)``로 설정됩니다. 인수에 대한 최소한의 확인만 수행되므로, *origin*이 타입이 아니더라도 함수는 성공합니다. ` GenericAlias`의 ``__parameters__` 속성은 __args__ 로부터 지연적으로 구성됩니다. 실패 시 예외가 발생하며 NULL 이 반환됩니다.

제네릭 확장 타입을 만드는 예시입니다:

...
static PyMethodDef my_obj_methods[] = {
    // 다른 메서드들.
    ...
    {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, "my_obj는 포함된 타입에 대해 제네릭입니다"}
    ...
}

더 보기

데이터 모델 메서드 __class_getitem__().

Added in version 3.9.

PyTypeObject Py_GenericAliasType
상의 안정 ABI 버전 3.9 이후로.

:c:func:`Py_GenericAlias`가 반환하는 객체의 C 타입입니다. Python의 :class:`types.GenericAlias`와 같습니다.

Added in version 3.9.