python 中自动化内存管理问题

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如果没有变量与其绑定,会被随时销毁

猜你喜欢

转载自blog.csdn.net/fayzoro/article/details/82051212