Объекты для подсказок типов
Предоставляются различные встроенные типы для подсказок типов. В настоящее время существуют два типа – GenericAlias и Union. Только GenericAlias доступно для C.
-
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.Вот пример создания расширяемого типа generic:
... static PyMethodDef my_obj_methods[] = { // Other methods. ... {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, "See PEP 585"} ... }См. также
Метод модели данных
__class_getitem__().Новое в версии 3.9.
-
PyTypeObject Py_GenericAliasType -
Часть Стабильного ABI с версии 3.9.
Тип C объекта, возвращаемого функцией
Py_GenericAlias(). Эквивалентноtypes.GenericAliasв Python.Новое в версии 3.9.
© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/c-api/typehints.html