全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

Python对象的创建

发布时间:2023-11-07 10:33:57
发布人:xqq

python会用两种方法创建对象,一种是泛型API(AOL:AbstractObjectLayer),可以应用在任何Python对象上,API内不会有机制确定最终调用哪个具体函数,比如PyObject_New(PyObject,&PyInt_Type)。另一种是类型相关API(COL:ConcreteObjectLayer),只能应用于具体类型的对象上,比如PyInt_FromLong(10)。

自定义对象在Python内部不可能存在COL,所以只能根据其类型对象来创建实例对象,这就需要PyTypeObject中的tp_new函数指针,如果是自定义对象,这个指针可能是空,那就通过PyTypeObject的tp_base找到类型对象的基类,再找tp_new指针,这个过程中会利用类型对象中记录的空间信息申请内存。对于Python中的任何一种变长对象,tp_itemsize这个域是必须设置的,tp_itemsize指明了由变长对象保存的元素的单位长度,所谓单位长度即是指一个对象在内存中的长度。这个tp_itemsize和ob_size共同决定了应该额外申请的内存的总大小是多少。

内建对象最终会使用COL完成创建工作。

new函数完成后,会执行init函数,前者类似于new操作符,后者类似于构造函数。

以上内容为大家介绍了Python对象的创建,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。http://www.mobiletrain.org/

python培训

相关文章

Python之__init__和__new__的区别是什么

Python之__init__和__new__的区别是什么

2023-11-07
Python常用的高级用法之怎么动态创建类

Python常用的高级用法之怎么动态创建类

2023-11-07
Python 多线程死锁问题的巧妙解决方法

Python 多线程死锁问题的巧妙解决方法

2023-11-07
Python在自动化测试系统中的应用

Python在自动化测试系统中的应用

2023-11-07

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31
在线咨询 免费试学 教程领取