在Python中一切皆是对象,而在C语言中,这些对象只是一些复杂的结构体而已。下面介绍的是Python的一些对象在C中的结构(64位操作系统)。
对象的两个基本属性
Python 所有对象结构体中的头两个字段都是相同的:
- refcnt: 对象的引用次数,若引用次数为 0 则表示此对象可以被垃圾回收了。(占四个字节)
- typeid: 指向描述对象类型的对象的指针。(占四个字节)
整型和浮点型
除了两个基本属性外,还包含一个储存值val字段。因此Python中一个整数占用12字节,一个浮点数占用16个字节。这也是Python占用内存较多的原因之一。
字符串和长整型
- 两个基本属性
- size字段,保存长度
- _val 字段,不占用内存,动态创建
———- to be continue.