타입 힌트를 위한 객체¶
형 힌팅용 다양한 내장 타입이 제공됩니다. 현재 두 가지 타입이 존재합니다. GenericAlias 와 Union 입니다. C에 노출되는 것은 GenericAlias 뿐입니다.
-
PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)¶
- 상의 안정 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[] = { // 다른 메서드들. ... {"__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.