类型对象 也许Python对象系统最重要的结构之一是定义新类型的结构:PyTypeObject结构。可以使用PyObject_*()或PyType_*()函数中的任何一个来处理类型对象,但是对于大多数Python应用程序来说,它们并没有提供太多有趣的东西。这些对象是对象行为的基础,对于解释器本身以及实现新类型的任何扩展模块非常重要. 与大多数标准类型相比,类型对象相当大。大小的原因是每个类型对象存储大量值,主要是Cfunction指针,每个指针都实现了类型功能的一小部分。本节详细介绍了类型对象的字段。这些字段将按照它们在结构中的顺序进行描述. Typedef:unaryfunc,binaryf

在堆上分配对象 PyObject * _PyObject_New( PyTypeObject  *type) Return value: New reference. PyVarObject * _PyObject_NewVar( PyTypeObject  *type,Py_ssize_t  size) Return value: New reference. PyObject * PyObject_Init( PyObject  *op,PyTypeObject  *type) Return value: Borrowed reference. 使用类型和初始引用初始化一个新分配的对象op

Coroutine Objects 版本3.5中的新功能 协程对象是用asynckeywordreturn. PyCoroObject 用于协程对象的C结构. PyTypeObject PyCoro_Type 与协程对象对应的类型对​​象. int PyCoro_CheckExact(的PyObject  *ob) 如果ob的类型是PyCoro_Type;ob必须不 NULL. PyObject * PyCoro_New(PyFrameObject  *frame,PyObject  *name,PyObject  *qualname) Return value: New reference.

描述符对象 “描述符”是描述对象的某些属性的对象。它们是在类型对象的字典中找到的. PyTypeObject PyProperty_Type 内置描述符类型的类型对象. PyObject* PyDescr_NewGetSet( PyTypeObject  *type,struct PyGetSetDef  *getset) Return value: New reference. PyObject * PyDescr_NewMember( PyTypeObject  *type,struct PyMemberDef  *meth) Return value: New reference. Py

迭代器对象 Python提供了两个通用迭代器对象。第一个,一个序列化器,使用支持__getitem__()方法。第二个使用可调用对象和一个标记值,调用序列中每个项目的可调用项,并在返回该函数值时结束迭代. PyTypeObject PySeqIter_Type 为PySeqIter_New()返回的迭代器对象的类型对象和内置序列类型的iter()内置函数的一个参数形式. intPySeqIter_Check(运算) 如果op的类型是PySeqIter_Type. PyObject * PySeqIter_New( PyObject  *seq) Return value: New refere

代码对象 代码对象是CPython实现的低级细节。每个代码都代表一段尚未绑定到函数中的可执行代码. PyCodeObject 用于描述代码对象的对象的C结构。这种类型的字段随时都有变化. PyTypeObject PyCode_Type 这是PyTypeObject的一个实例,代表Python code类型。 int PyCode_Check(的PyObject  *co) 如果co是code宾语。 int PyCode_GetNumFree(PyCodeObject  *co) 返回co. PyCodeObject * PyCode_New( int  argcount,int  kwonl

实例方法对象 实例方法是PyCFunction以及绑定PyCFunction到一个类对象。它取代了之前的呼叫PyMethod_New(func, NULL, class). PyTypeObject PyInstanceMethod_Type 这个的实例PyTypeObject表示Python instancemethod类型。它没有暴露给Python程序. int PyInstanceMethod_Check(的PyObject  *o) 如果o是一个实例方法对象(具有类型PyInstanceMethod_Type)。参数不能是NULL. PyObject * PyInstanceMetho

元组对象   PyTupleObject PyObject的子类型代表一个Python元组对象. PyTypeObject PyTuple_Type PyTypeObject的这个实例表示Python元组类型;它与Python层中tuple的对象相同. int PyTuple_Check( PyObject  *p) 如果p是元组对象或tupletype的子类型实例,则返回true。 int PyTuple_CheckExact( PyObject  *p) 如果p是元组对象,则返回true,但不是元组类型子类的实例. PyObject* PyTuple_New( Py_ssize_

浮点对象   PyFloatObject PyObject的子类型代表一个Python浮点对象. PyTypeObject PyFloat_Type 这个PyTypeObject表示Python浮点类型。这与Python层中float的对象相同. int PyFloat_Check( PyObject  *p) 如果参数为PyFloatObject或PyFloatObject. int PyFloat_CheckExact(的PyObject  *p) 如果它的参数是PyFloatObject,但不是PyFloatObject. PyObject * PyFloat_FromStri

None宾语 注意PyTypeObject为None不直接暴露在Python / C API中。自None是单身,测试对象身份(使用==在C)就足够了。同样没有PyNone_Check()功能. PyObject* Py_None Python None对象,表示缺乏价值。这个对象没有方法。它需要被处理就像任何其他对象相关的referencecounts. Py_RETURN_NONE 正确处理返回Py_None从C函数内部(即增加None的引用计数并返回它。)