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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容