-1 python python-3.x
Word='hello world'
Word=Word.upper()
Run Code Online (Sandbox Code Playgroud)
现在在这段代码中,根据我的理解,python 字符串是不可变的,所以当我重新分配实际发生的事情时?有人可以解释python如何处理这种情况。
Python“变量”(Word在您的情况下)是对对象的引用。因此,Python 语言参考将它们称为“名称”而不是“变量”。
运行时会创建Word.upper()一个新的不可变字符串'HELLO WORLD',并返回对它的引用。
当您通过新赋值更改引用时,字符串的引用计数'HELLO WORLD'增加 1,字符串的引用计数'hello world'减少 1。
当对象的引用计数达到零时,对象被垃圾回收。
(请注意,为清楚起见,以上内容略有简化。)
阅读Python Language Reference 的第 3 章和第 4 章,尤其是 §4.2 命名和绑定以获得更好的理解。
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |