타입 힌팅을 위한 객체¶
타입 힌팅을 위한 다양한 내장 타입이 제공됩니다. 현재 두 가지 타입인 GenericAlias 와 Union 가 존재합니다. 오직 GenericAlias 만 C에 노출됩니다.
-
PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)¶
- …의 일부 안정 ABI 버전 3.9 이후로.
GenericAlias 객체를 생성합니다. 파이썬 클래스
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, "my_obj is generic over its contained type"} ... }
더 보기
데이터 모델 메서드인
__class_getitem__()입니다.Added in version 3.9.
-
PyTypeObject Py_GenericAliasType¶
- …의 일부 안정 ABI 버전 3.9 이후로.
Py_GenericAlias()가 반환하는 객체의 C 타입입니다. 파이썬의types.GenericAlias와 동일합니다.Added in version 3.9.