python 中自动化内存管理
问题:
使用赋值语句
a = 10000
b = 20000
a = a + b # 发生了什么?
c = a # 发生了什么?
a = 10000 内存中创建一个10000对象,用变量a和10000绑定绑定
b = 20000 内存中创建一个 20000对象,用变量b和20000对象绑
a = a + b 计算对象a 和 b 的和,创建一个30000的对象,a 解除与10000对象的绑定,重新绑定30000这个对象
c = a 变量c和变量a绑定同一个对象
注:在python中,变量没有类型
关联/绑定/引用都是指一个变量和一个对象的关联关系
del 语句(delete简写)
作用:用于删除变量,同事解除此变量与对象的绑定关系
,如果可能则释放对象
语法:
del 变量名
自动化内存管理和引用计数:
每个对象会记录有几个变量引用自身,当引用的数量为0时,此对象被销毁,此种自动化内存管理的方式叫引用计数
如上面的问题中的对象 10000如果没有变量与其绑定,会被随时销毁