类型提示的对象 — Python 文档
来自菜鸟教程
Python/docs/3.9/c-api/typehints
类型提示的对象
提供了用于类型提示的各种内置类型。 只有 GenericAlias 暴露给 C。
- PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)
创建一个 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[] = { // Other methods. ... {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, "See PEP 585"} ... }
也可以看看
数据模型方法
__class_getitem__()
。3.9 版中的新功能。
- PyTypeObject Py_GenericAliasType
Py_GenericAlias() 返回的对象的 C 类型。 相当于 Python 中的 types.GenericAlias。
3.9 版中的新功能。