创新互联Python教程:在堆上分配对象

在堆上分配对象

PyObject *_PyObject_New(PyTypeObject *type)

成都创新互联公司是专业的平阳网站建设公司,平阳接单;提供成都网站建设、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行平阳网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

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. Part of the Stable ABI.

Initialize a newly allocated object op with its type and initial reference. Returns the initialized object. If type indicates that the object participates in the cyclic garbage detector, it is added to the detector’s set of observed objects. Other fields of the object are not affected.

PyVarObject *PyObject_InitVar(PyVarObject *op, PyTypeObject *type, Py_ssize_t size)

Return value: Borrowed reference. Part of the Stable ABI.

它的功能和 PyObject_Init() 一样,并且会初始化变量大小对象的长度信息。

TYPE *PyObject_New(TYPE, PyTypeObject *type)

Return value: New reference.

使用 C 结构类型 TYPE 和 python 类型对象 type 分配一个新的 Python 对象。 未在该 Python 对象标头中定义的字段不会被初始化;对象的引用计数将为一。 内存分配大小由 type 对象的 tp_basicsize 字段来确定。

TYPE *PyObject_NewVar(TYPE, PyTypeObject *type, Py_ssize_t size)

Return value: New reference.

使用C的数据结构类型 TYPE 和Python的类型对象 type 分配一个新的Python对象。Python对象头文件中没有定义的字段不会被初始化。被分配的内存空间预留了 TYPE 结构加 type 对象中 tp_itemsize 字段提供的 size 字段的值。这对于实现类似元组这种能够在构造期决定自己大小的对象是很实用的。将字段的数组嵌入到相同的内存分配中可以减少内存分配的次数,这提高了内存分配的效率。

void PyObject_Del(void *op)

释放由 PyObject_New() 或者 PyObject_NewVar() 分配内存的对象。这通常由对象的type字段定义的 tp_dealloc 处理函数来调用。调用这个函数以后op对象中的字段都不可以被访问,因为原分配的内存空间已不再是一个有效的Python对象。

PyObject _Py_NoneStruct

这个对象是像 None 一样的 Python 对象。它可以使用 Py_None 宏访问,该宏的拿到指向该对象的指针。

参见

PyModule_Create()

分配内存和创建扩展模块

网站名称:创新互联Python教程:在堆上分配对象
URL标题:http://www.mswzjz.cn/qtweb/news46/219596.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能