在Python语言中,当我们为一个变量赋一个新值时,旧变量会发生什么情况? [英] In python when we assign a new value to a variable what happens to the old one?

查看:35
本文介绍了在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语言中,当我们为一个变量赋一个新值时,旧变量会发生什么情况?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆