用于类型提示的对象

Various built-in types for type hinting are provided. Currently, two types exist – GenericAlias and Union . Only GenericAlias is exposed to C.

PyObject * Py_GenericAlias ( PyObject * origin , PyObject * args )
属于 稳定 ABI (应用程序二进制接口) since version 3.9.

创建 GenericAlias object. Equivalent to calling the Python class types.GenericAlias origin and args arguments set the GenericAlias ‘s __origin__ and __args__ attributes respectively. origin 应该为 PyTypeObject * ,和 args 可以是 PyTupleObject * 或任何 PyObject* 。若 args passed is not a tuple, a 1-tuple is automatically constructed and __args__ 被设为 (args,) . Minimal checking is done for the arguments, so the function will succeed even if origin is not a type. The GenericAlias ‘s __parameters__ attribute is constructed lazily from __args__ . On failure, an exception is raised and NULL 被返回。

Here’s an example of how to make an extension type generic:

...
static PyMethodDef my_obj_methods[] = {
    // Other methods.
    ...
    {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, "See PEP 585"}
    ...
}
							

另请参阅

The data model method __class_getitem__() .

Added in version 3.9.

PyTypeObject Py_GenericAliasType
属于 稳定 ABI (应用程序二进制接口) since version 3.9.

The C type of the object returned by Py_GenericAlias() 。相当于 types.GenericAlias in Python.

Added in version 3.9.

上一话题

日期时间对象

下一话题

初始化、定稿和线程

本页