类型对象 – 具体对象层(Python教程)(参考资料)
类型对象
PyTypeObject
- 用于描述内置类型的对象的C结构.
- 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_HasFeature
(PyTypeObject *o,int feature) - 如果类型对象o设置了feature的特征,则返回true。类型特征用单位标志表示
- int
PyType_IS_GC
( PyTypeObject *o) - 如果类型对象包括对循环检测器的支持,则返回true;这个测试类型标志
Py_TPFLAGS_HAVE_GC
.
- int
PyType_IsSubtype
(PyTypeObject *a,PyTypeObject *b) - 如果a是b.
的子类型。此函数仅检查实际的子类型,这意味着
__subclasscheck__()
未在b上调用。打电话PyObject_IsSubclass()
做issubclass()
会做同样的检查.
- PyObject*
PyType_GenericAlloc
(PyTypeObject *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_FromSpecWithBases
(PyType_Spec *spec,PyObject *bases) - Return value: New reference.
从spec创建并返回一个堆类型对象。除此之外,创建的堆类型包含bases元组作为基本类型。这允许调用者引用其他堆类型作为基类型.
新版本3.3.
- void*
PyType_GetSlot
( PyTypeObject *type,int slot) - 返回存储在给定槽中的函数指针。如果结果是NULL,则表示插槽是NULL,或者是使用无效参数调用该函数.Callers通常会将结果指针强制转换为相应的函数类型.
版本3.4.
评论被关闭。