对象引用、可变性和垃圾回收

python中的赋值语句,首先要先读右边。对象在右边创建获取,在此之后左边的的变量才会绑定到对象上,就像为对象贴上了标注。
== 运算符比较两个对象的值,is比较两个对象的标识,通常我们关注的是值,而不是标识,在python中==出现的频率比is高
不要使用可变类型作为参数的默认值
在Cpython中,垃圾回收使用的主要算法是垃圾回收,实际上,每个对象都会统计有多少个对象引用自己,当引用的计数为零时,对象立即被销毁:Cpython会在对象调用上调用__del__方法,然后释放分配给对象的内存。在Cpython2.0在增加了分代垃圾回收算法,用于检测对象循环中涉及的对象组——如果一组对象之间全是相互引用,即使再出色的引用方式也会导致组中的对象不可获取
正是因为有引用,对象才会在内存中存在,当对象的引用数量归零后,垃圾回收程序会把对象销毁,但是有时需要引用对象,而不是让对象存在的时间超过所需时间,这经常用在缓存中,弱引用不会增加对象的引用数量,所以弱引用不会妨碍所指对象被当做垃圾回收。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值