Type Objects¶
-
PyTypeObject
¶ 用于描述内建类型的对象的C结构。
- unsigned int
PyType_ClearCache
()¶ 清除内部查找缓存。返回当前版本标签。
- long
PyType_GetFlags
(PyTypeObject* type)¶ Return the
tp_flags
member of type. 此函数主要用于Py_LIMITED_API;各个标志位保证在Python版本之间是稳定的,但访问tp_flags
本身不是受限API的一部分。版本3.2中的新功能。
- void
PyType_Modified
(PyTypeObject *type)¶ 为类型及其所有子类型禁用内部查找高速缓存。在对类型的属性或基类进行任何手动修改后,必须调用此函数。
- int
PyType_HasFeature
(PyTypeObject *o, int feature)¶ 如果类型对象o设置功能,则返回true。类型特征由单个位标志表示。
- int
PyType_IS_GC
(PyTypeObject *o)¶ 如果类型对象包括对周期检测器的支持,则返回true;这将测试类型标志
Py_TPFLAGS_HAVE_GC
。
- int
PyType_IsSubtype
(PyTypeObject *a, PyTypeObject *b)¶ 如果a是b的子类型,则返回true。
此函数仅检查实际的子类型,这意味着
__subclasscheck__()
在b上未调用。调用PyObject_IsSubclass()
执行issubclass()
会做的相同检查。
- PyObject*
PyType_GenericAlloc
(PyTypeObject *type, Py_ssize_t nitems)¶ - 返回值:新引用。
类型对象的
tp_alloc
槽的通用处理程序。使用Python的默认内存分配机制来分配一个新的实例,并将其所有内容初始化为NULL。
- PyObject*
PyType_GenericNew
(PyTypeObject *type, PyObject *args, PyObject *kwds)¶ - 返回值:新引用。
- int
PyType_Ready
(PyTypeObject *type)¶ 完成类型对象。这应该在所有类型对象上调用以完成初始化。此函数负责从类型的基类中添加继承的插槽。成功返回
0
,或返回-1
并在错误时设置异常。
- PyObject*
PyType_FromSpecWithBases
(PyType_Spec *spec, PyObject *bases)¶ 从spec创建并返回堆类型对象。除此之外,创建的堆类型包含由bases元组包含的所有类型作为基本类型。这允许调用者引用其他堆类型作为基类型。
版本3.3中的新功能。
- void*
PyType_GetSlot
(PyTypeObject *type, int slot)¶ 返回存储在给定插槽中的函数指针。如果结果为NULL,则表示插槽为NULL,或者函数调用的参数无效。调用者通常将结果指针转换成适当的函数类型。
版本3.4中的新功能。