直到现在我一直认为Python字符串是不可变的,但当我尝试这样做时,我感到困惑了。
>>> a
'hello world !'
>>> id(a)
140521043795728
>>> a+="d"
>>> id(a)
140521043795728
>>> a+="d"
>>> id(a)
140521043795728
>>> a
'hello world !dd'
如果我使用
+=
运算符,尽管字符串已更改,但它不会更改对象ID。在这种情况下发生了什么?现在有点不同?https://ideone.com/eg1SIN 有人能解释一下这里发生了什么吗?
b = a
,保持b
不变,并打印a
和b
的 id。 - Colonel Thirty Twoa
对象,因此 Python 可以自由地重用该地址。正如 Colonel 所评论的那样,保留对a
的引用,你将会看到不同的行为。 - Padraic Cunningham