python循环引用是什么意思?

  • 更新时间:2021-07-13 09:08:01
  • 编辑:权英博
给网友朋友们带来一篇相关的编程文章,网友宓月明根据主题投稿了本篇教程内容,涉及到Python相关内容,已被300网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

参考资料

正文内容

码农之家最近发表了一篇名为《python循环引用是什么意思?》的py文章,代码实例很详细,这里给大家转摘到这里,觉得好就请收藏下。

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 输出是省略号的问题,具有很好的参考价值,希望对大家有所帮助。一起过来看看吧

    发布时间:2019-07-11

  • Python文本处理之按行处理大文件的方法

    下面小编就为大家分享一篇Python文本处理之按行处理大文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    发布时间:2019-08-26

用户留言