【发布时间】:2012-12-18 11:55:55
【问题描述】:
Python 字符串应该像整数一样是不可变的。考虑一下:
>>> num1 = 34
>>> num2 = 36
>>> id(num1)
505894832
>>> num4 = 34
>>> id(num4)
505894832
num4 与 num1 具有完全相同的 ID,这意味着它们指向同一事物。字符串不应该发生同样的事情吗?我很困惑:
>>> name = "Sumeet"
>>> id(name)
35692000
>>> name = "Ali"
>>> id(name)
35926912
>>> naam = "Sumeet"
>>> id(naam)
35926848
最后的输出不应该是:35692000吗?
【问题讨论】:
-
不可变只是意味着它们不能被修改。与同一个字符串是否有多个副本无关。
-
另外,python 实习低整数并重用它们。毕竟它们是不可变的。你真的只需要 1 个号码
1.. 的副本 -
那么,对于字符串,我们是否需要多个副本说同一个“Hello”...它们也是不可变的?
-
另外:Python 可以重用内存地址。
id()不保证是唯一的。 -
你为什么会担心这个问题?
标签: python string python-3.x immutability