类型提示对象¶
提供了各种用于类型提示的内置类型。目前存在两种类型 —— GenericAlias 和 Union。只有 GenericAlias 暴露给 C。
-
PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)¶
- 自 3.9 版本起属于 稳定 ABI 的一部分。
创建一个 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__", Py_GenericAlias, METH_O|METH_CLASS, "See PEP 585"} ... }
另请参阅
数据模型方法
__class_getitem__()。在 3.9 版本中添加。
-
PyTypeObject Py_GenericAliasType¶
- 自 3.9 版本起属于 稳定 ABI 的一部分。
由
Py_GenericAlias()返回的对象的 C 类型。等同于 Python 中的types.GenericAlias。在 3.9 版本中添加。