python的字符串是不可变对象。所谓不可变对象是指一旦生成后不能被改变的对象。
<b>不可变对象有什么优点</b>:
- 可以提高性能,解释器可以分配一段固定的内存,并且可以重用该对象。比如,CPython在实现中预先申请了所有的单字节字符,并且,如果字符串运算后的结果与运算前相同,就会返回运算前的字符串。
- python里面,字符串与数字一样,被认为是表示思想的最基本材料。在Python里,没有任何方法可以把数字8变成其它东西,同样,也没有办法把"eight"这个字符串变成其它东西。
- 使用不可变数据结构,强调了一种无副作用的编程方式(函数式编程)。同时,如果多个变量引用了同一个字符串对象,不会出现修改了某个变量的值,而对另一个变量产生影响。
示例:
>>> b="1234"
>>> id(b)
53399088
>>> c="1234"
>>> id(c)
53399088
>>> b="111"
>>> id(b)
53396568
>>> id(c)
53399088
>>> id(b+"11")
52665120
>>> id(b)
53396568