类型对象

 

PyTypeObject
用于描述内置类型对象的C结构.
PyObject* PyType_Type
这是类型对象的类型对象;它与Python层中的type是同一个对象.
int PyType_Check PyObject  *o
如果对象o是一个类型对象,则返回true,包括从中派生的类型的实例标准类型对象。在所有其他情况下返回假.
int PyType_CheckExact PyObject  *o
如果对象o是一个类型对象,但不是标准类型对象的子类型,则返回true。在所有其他情况下返回false .
nsigned int PyType_ClearCache
清除内部查找缓存。返回当前版本标签.
签名长PyType_GetFlags PyTypeObject *  type
返回tp_flags成员 type。这个函数主要用于 Py_LIMITED_API ;各个标志位保证在Python版本中保持稳定,但访问tp_flags本身不属于有限的API.

新版本3.2.

更改版本3.4:返回类型现在是unsigned long而不是long.

void PyType_Modified PyTypeObject  *type
使类型及其所有子类型的内部查找缓存无效。在对类型的属性或基类进行任何手动修改后,必须调用此函数.
int PyType_HasFeaturePyTypeObject  *o,int  feature
如果类型对象o设置了feature的特征,则返回true。类型特征用单位标志表示
int PyType_IS_GC PyTypeObject  *o
如果类型对象包括对循环检测器的支持,则返回true;这个测试类型标志Py_TPFLAGS_HAVE_GC.
int PyType_IsSubtypePyTypeObject  *a,PyTypeObject  *b
如果ab.

的子类型。此函数仅检查实际的子类型,这意味着__subclasscheck__()未在b调用。打电话PyObject_IsSubclass()issubclass()会做同样的检查.

PyObject* PyType_GenericAllocPyTypeObject  *type,Py_ssize_t  nitems
Return value: New reference.

tp_alloc类型对象的槽。UsePython的默认内存分配机制分配一个新实例并将其所有内容初始化为NULL.

PyObject * PyType_GenericNew PyTypeObject  *type,PyObject  *args,PyObject  *kwds
Return value: New reference.

类型对象的tp_new槽的通用处理程序。使用类型的tp_alloc slot.

int PyType_Ready PyTypeObject  *type)创建一个新实例
敲定一个类型对象。应该在所有类型对象上调用它来完成初始化。此函数负责从类型的基类添加继承的槽。成功时返回0,或者返回-1并设置错误的错误.
PyObject* PyType_FromSpec PyType_Spec  *spec
Return value: New reference.

从传递给函数的spec创建并返回一个堆类型对象.

PyObject* PyType_FromSpecWithBasesPyType_Spec  *spec,PyObject  *bases
Return value: New reference.

spec创建并返回一个堆类型对象。除此之外,创建的堆类型包含bases元组作为基本类型。这允许调用者引用其他堆类型作为基类型.

新版本3.3.

void* PyType_GetSlot PyTypeObject  *type,int  slot
返回存储在给定槽中的函数指针。如果结果是NULL,则表示插槽是NULL,或者是使用无效参数调用该函数.Callers通常会将结果指针强制转换为相应的函数类型.

版本3.4.

评论被关闭。