Python垃圾回收机制 —— 引用
文章目录
1. 只要能够访问到所需要调用的值都是一种引用。
2. 直接引用: 形如:x = 10 这种直接赋值的为直接引用
单从逻辑层面分析,我们定义变量将变量值存起来的目的是为了以后取出来使用,而取得变量值需要通过其绑定的直接引用(如x=10,10被x直接引用)
3. 间接引用:将数值的地址放入像容器一样的列表与字典中进行引用。例如:x = 10
list = [‘a’, x] ('a’的内存地址,x的内存地址)
dict = {‘tag’ : x}
(这里是对10的间接引用)
间接引用(如l=[x,],x=10,10被x直接引用,而被容器类型l间接引用)
所以当变量不再与任何东西绑定时,我们就无法再访问这个值了,这个值就应该被垃圾回收机制回收。
所以当一个变量值不再绑定任何引用时,我们就无法再访问到该变量值了,该变量值自然就是没有用的,就应该被当成一个垃圾回收。
x = 10
list1 = ['a', x]
x = 123
print(list1[1])
====================================================================
10
解释: 因为list1[1]里存放的是10的地址,不管x后边怎么变如果没有再声明一遍list1。list[1]所存放的地址都不会变。
x = 10
list1 = ['a', x]
x = 123
list1 = ['a', x]
print(list1[1])
123