请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

字符串不可变的问题

a = "1234"
a
’1234’

a = a + "56"
a
’123456’

id(a)
140685085028016

a += "78"
id(a)
140685085028016

a
’12345678’

id(a)
140685085028016

a = a+"90"
a
’1234567890’

id(a)
140685085028016

偶尔尝试了一次,发现id一模一样,这是怎么回事???
但是后面重新赋值后再加,就不一样了。
这是BUG吗
测试环境:CentOS 8 + Python3.8

正在回答 回答被采纳积分+3

1回答

7七月 2020-07-29 10:16:28

字符串python是有优化的,有时候是会复用原来的地址

0 回复 有任何疑惑可以回复我~
  • 提问者 易萧 #1
    意思是说,原来的字符串被销毁了吗,然后新的字符串直接占用了它的地址吗
    回复 有任何疑惑可以回复我~ 2020-07-29 13:59:03
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信