千锋教育-做有情怀、有良心、有品质的职业教育机构

python循环引用是什么意思?

来源:千锋教育
发布时间:2023-11-14 06:32:39
分享

python循环引用是什么意思?

本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。

1、说明

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

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

2、实例

classPerson:

def__del__(self):

print("Person({0})被释放".format(id(self)))

classDog:

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,只是在语法层面上删除了它们。

delp,dog#p,dog=1,1

以上就是python循环引用的介绍,希望能对大家有所帮助。更多Python学习教程请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • pythonmax函数怎么用 pythonmax函数怎么用说到取值大家肯定不陌生,max函数是比较好的选择,主要的作用是选取序列或参数的值。不过相对于基础的使用而言,本篇文章还会介绍一些涉及中级语法方面的使用,在学习上有一定的难度
  • pythonindex函数是什么 pythonindex函数是什么在我们对字符串进行检查时,大家并不需要逐个的去验证。特别是在子字符串str的检查上,我们有专门的index函数可以实现。相信说到这里,很多人已经想知道具体的检查方法了,
  • pythontime模块是什么 pythontime模块是什么在python中使用时间,就免不了和time模块打交道,另外两个模块这个暂时先不做介绍。做time模块的使用上,我们可以用它来对时间进行获取等操作。主要分成了三种时间格式
  • python32是什么 python32是什么Python32指的是windows32位操作系统。1、两种查看系统方法第一,桌面“我的电脑”,点击鼠标右键,选择“属性”。在“系统”中可以看到有“系统类型”,显示是64位操作系
  • pythonsys模块有哪些用法 pythonsys模块有哪些用法1、获得当前Python搜索路径的方法:importsysprint(sys.path)2、sys模块的argv变量的用法:sys模块有一个argv(argumentv
  • pythonreversed的反向迭代 pythonreversed的反向迭代1、说明使用Python中有内置的函数reversed()。要注意一点就是:反向迭代仅仅当对象的大小可预先确定或者对象实现了__reversed__()的特殊方法