Python垃圾回收机制之引用

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

截图1

截图2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值