1.引用计数器
1.1 环状双向链表refchain
name = 'xu' # 内部会创建一些数据[上一个对象,下一个对象,类型,引用个数,val]
aga= 18 # 内部会创建一些数据[上一个对象,下一个对象,类型,引用个数,val=18]
hobby = ['美食'] # 内部会创建一些数据[上一个对象,下一个对象,类型,引用个数,items=元素,元素个数]
在C源码中如何体现每个对象中都有相同的值: PyObject结构体(4个值)
有多个元素组成的对象:PyObject结构体(4个值)+ob_size
1.2 类型封装结构体
data = 3.14
内部会创建:
_ob_next = refchain中的上一个对象
_ob_prev = refchain中的下一个对象
_ob_refcnt = 1
_ob_type = float
_ob_fval = 3.14
3.分代回收 0代: 0代中对象个数达到700个扫描一次 1代: 0代扫描10次,则1代扫描一次 2代: 1代扫描一次,则2代扫描一次 '''
面试:源码: