创新互联Python教程:python循环引用是什么意思?

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

1、说明

(1)简单来说,当一个对象不再使用时,应该被释放,但是,当对象被删除后仍然存在引用计数时,将无法释放该对象。

(2)当被del后的对象还存在引用计数时,通过引用计数器机制就无法做到真正从内存中回收它们,于是就造成了,由循环引用引起的内存泄漏问题。

2、实例

class Person:
    def __del__(self):
        print("Person({0}) 被释放".format(id(self)))
 
class Dog:
    def __del__(self):
        print("Dog({0}) 被释放".format(id(self)))
 
p = Person()  # p = 1
dog = Dog()  # dog = 1
 
# 循环引用
p.pet = dog  # dog = 2
dog.master = p  # p = 2
 
# 程序结束前 __del__() 不被调用
# 由于循环引用,本质上无法真正删除 p, dog,只是在语法层面上删除了它们。
del p, dog  # p, dog = 1, 1

以上就是python循环引用的介绍,希望能对大家有所帮助。更多Python学习指路:创新互联python教程


网页标题:创新互联Python教程:python循环引用是什么意思?
文章网址:http://bzwzjz.com/article/djdjedj.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 营销型网站建设 重庆网站设计 成都商城网站制作 成都网站设计 成都网站建设 重庆手机网站建设 手机网站制作设计 成都定制网站建设 网站建设推广 重庆网站制作 成都网站制作 重庆网站建设 网站制作公司 成都模版网站建设 成都网站制作 成都网站建设 成都网站设计 营销网站建设 app网站建设 响应式网站设计 营销型网站建设 高端定制网站设计