本文介绍了在Python语言中,当我们为一个变量赋一个新值时,旧变量会发生什么情况?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我知道还有其他类似的问题,但它们没有回答重新分配后以前的值会发生什么,这就是为什么我决定发布一个新的问题。到目前为止,我已经了解到,Python中的一切都是对象,甚至int、浮点、字符串、bool类型的变量也是对象,我在某个地方读到,当我们分配一个变量num = 11
时,num实际上并不是将11的值存储在其中,而是指向内存中存储11的某个位置的指针。如果我们尝试将一个值重新分配给numnum = 22
,那么它将停止指向11,而开始指向将存储在内存中不同位置的新值22,所以我的问题是,前一个值会发生什么情况,即11
是被释放还是被删除?
推荐答案
如果不再有任何对对象的引用,则该对象有资格进行垃圾回收。通常,它会立即发生。
可能存在引用循环,一种简单的情况是引用计数为非零的对象,因为它持有对自身的唯一引用。
>>> a = [] # A list with a reference count of 1
>>> a.append(a) # List now has a reference count of 2: a and a[0]
>>> del a # List has a reference count of 1, but no name refers to the list
Python实现使用单独的算法定期扫描所有现有对象,以查找此类循环并删除无法再从Python代码访问的对象。
这篇关于在Python语言中,当我们为一个变量赋一个新值时,旧变量会发生什么情况?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!