字符串不可变的问题

来源:5-3 值类型与引用类型

易萧

2020-07-28

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

写回答

1回答

7七月

2020-07-29

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

0
1
易萧
意思是说,原来的字符串被销毁了吗,然后新的字符串直接占用了它的地址吗
2020-07-29
共1条回复

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14446 学习 · 4438 问题

查看课程