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

公共对象结构 在Python的对象类型的定义中使用了大量结构。本节描述了这些结构及其使用方法. 所有Python对象最终在对象在内存中的表示开头共享少量字段。它们由PyObject和PyVarObject类型表示,它们又由一些宏的扩展定义,无论是直接还是间接地在所有其他Python对象的定义中使用. PyObject 所有对象类型都是此类型的扩展名。这是一种包含Python将对象指针作为对象处理的信息的类型。在正常的“发布”版本中,它只包含对象的引用计数和指向相应类型对象的指针。实际上没有声明为PyObject,但每个Python对象都可以转换为PyObject*。访问主题必须使用宏Py_RE

DateTime Objects 各种日期和时间对象由datetime模块提供。在使用任何这些函数之前,头文件datetime.h必须包含在你的来源中(注意这不包含在Python.h中)和宏PyDateTime_IMPORT必须调用,通常作为模块初始化函数的一部分。宏将一个指向C结构的指针放到一个静态变量PyDateTimeAPI中,由下面的macros使用 用于访问UTC singleton的宏: PyObject * PyDateTime_TimeZone_UTC 返回表示UTC的时区单例,与datetime.timezone.utc. 相同的对象,版本3.7. Type-check ma

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.

生成器对象 生成器对象是Python用来实现生成器迭代器的对象。它们通常是通过迭代产生值的函数来创建的,而不是明确地调用PyGen_New()或PyGen_NewWithQualName(). PyGenObject 用于生成器对象的C结构. PyTypeObject PyGen_Type 对应于生成器对象的类型对象. int PyGen_Check( PyObject  *ob) 如果ob是一个发电机对象;ob必须不 NULL. int PyGen_CheckExact(的PyObject  *ob) 如果ob的类型是PyGen_Type;ob必须不 NULL. PyObject * PyG

弱引用对象 Python支持weak references作为第一类对象。有两种特定的对象类型直接实现弱引用。第一个是简单的参考对象,第二个作为原始对象的代理,尽可能地 // PyWeakref_Check( ob ) 如果ob是引用或代理对象,则返回true . int PyWeakref_CheckRef( ob ) 如果ob是参考对象,则返回true. int PyWeakref_CheckProxy( ob ) 如果ob是代理对象,则返回true。 PyObject* PyWeakref_NewRef( PyObject  *ob,PyObject *callback) Return

单元格对象 “单元格”对象用于实现由多个范围引用的变量。对于每个这样的变量,创建一个单元格对象来存储该值;引用该值的每个堆栈帧的局部变量包含对来自外部作用域的单元格的引用,这些单元格也使用该变量。当值被访问时,使用单元格中包含的值而不是单元格对象本身。这种对单元对象的引用需要生成的字节码的支持;访问它们时不会自动解除引用。细胞对象在其他地方不太可能有用. PyCellObject 用于单元格对象的C结构. PyTypeObject PyCell_Type 类型对象对应于单元格对象. int PyCell_Check( ob ) 如果ob是一个,则返回true细胞对象;ob一定不能NULL. P