类型对象 — Python 文档
来自菜鸟教程
Python/docs/2.7/c-api/type
类型对象
- type PyTypeObject
- 用于描述内置类型的对象的 C 结构。
- PyObject *PyType_Type
- 这是类型对象的类型对象; 它与 Python 层中的
type
和types.TypeType
是同一个对象。
- int PyType_Check(PyObject *o)
- 如果对象 o 是类型对象,包括从标准类型对象派生的类型实例,则返回 true。 在所有其他情况下返回 false。
- int PyType_CheckExact(PyObject *o)
如果对象 o 是类型对象,但不是标准类型对象的子类型,则返回 true。 在所有其他情况下返回 false。
2.2 版中的新功能。
- unsigned int PyType_ClearCache()
清除内部查找缓存。 返回当前版本标签。
2.6 版中的新功能。
- void PyType_Modified(PyTypeObject *type)
使该类型及其所有子类型的内部查找缓存无效。 在对该类型的属性或基类进行任何手动修改后,必须调用此函数。
2.6 版中的新功能。
- int PyType_HasFeature(PyObject *o, int feature)
- 如果类型对象 o 设置了特征 特征 ,则返回 true。 类型特征由单个位标志表示。
- int PyType_IS_GC(PyObject *o)
如果类型对象包含对循环检测器的支持,则返回 true; 这将测试类型标志 Py_TPFLAGS_HAVE_GC。
2.0 版中的新功能。
- int PyType_IsSubtype(PyTypeObject *a, PyTypeObject *b)
如果 a 是 b 的子类型,则返回 true。
2.2 版中的新功能。
这个函数只检查实际的子类型,这意味着在 b 上不会调用 __subclasscheck__()。 调用 PyObject_IsSubclass() 进行与 issubclass() 相同的检查。
- PyObject *PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
2.2 版中的新功能。
在 2.5 版更改:此功能使用
int
类型用于 nitems。 这可能需要更改您的代码才能正确支持 64 位系统。
- PyObject *PyType_GenericNew(PyTypeObject *type, PyObject *args, PyObject *kwds)
2.2 版中的新功能。
- int PyType_Ready(PyTypeObject *type)
完成一个类型对象。 这应该在所有类型对象上调用以完成它们的初始化。 该函数负责从类型的基类添加继承的槽。 成功返回
0
,或返回-1
并在错误时设置异常。2.2 版中的新功能。