知行编程网知行编程网  2022-12-01 13:00 知行编程网 隐藏边栏  1 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于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学习指路:

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享