Объекты для подсказки типов¶
Для подсказки типов предусмотрены различные встроенные типы. В настоящее время существует два типа – GenericAlias и Union. Только GenericAlias открыт для языка C.
-
PyObject *
Py_GenericAlias(PyObject *origin, PyObject *args)¶ - Part of the Stable ABI since version 3.9.
Создайте объект GenericAlias. Эквивалентно вызову класса Python
types.GenericAlias. Аргументы origin и args задают атрибутыGenericAlias„__origin__и__args__соответственно. origin должен быть PyTypeObject*, а args может быть PyTupleObject* или любымPyObject*. Если переданный args не является кортежем, автоматически строится кортеж 1, а__args__устанавливается в(args,). Для аргументов выполняется минимальная проверка, поэтому функция будет успешной, даже если origin не является типом. АтрибутGenericAlias„s__parameters__строится лениво из__args__. При неудаче выдается исключение и возвращаетсяNULL.Вот пример того, как сделать тип расширения общим:
... static PyMethodDef my_obj_methods[] = { // Other methods. ... {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, "See PEP 585"} ... }
См.также
Метод модели данных
__class_getitem__().Добавлено в версии 3.9.
-
PyTypeObject
Py_GenericAliasType¶ - Part of the Stable ABI since version 3.9.
C-тип объекта, возвращаемого
Py_GenericAlias(). Эквивалентноtypes.GenericAliasв Python.Добавлено в версии 3.9.