【发布时间】:2018-06-18 18:43:47
【问题描述】:
当我尝试使用 += 运算符修改字符串,并使用 id() 方法检查对象的身份时,字符串似乎是可变的。有人遇到过这种怪异的蟒蛇行为吗?
a = '123'
print id(a)
# 89806008
a += '1'
print id(a)
# 89245728
a += '1'
print id(a)
# 89245728
print a
# '12311'
使用a = a + '1'效果不一样,换个字符串id吧。
【问题讨论】:
-
@Tai 这个问题是关于字符串变量的一般重新绑定。这里是关于新对象具有相同的内存地址,表明它是同一个对象。
-
@schwobaseggl 知道了。
-
也许stackoverflow.com/questions/24245324/… 对这个问题有解释?
-
可能解释器检测到“1231”不再使用,并将“12311”放在同一内存位置
标签: python string python-2.7 mutability