如果python字符串是不可变的,如何更改如下:
a = "abc"
print a
a = "cde"
print a
输出:
abc
cde
这实际上是在创建一个新变量并改为指向那个变量吗?
答案 0 :(得分:5)
Python字符串是不可变的。你正在做的只是将a
变量重新分配给两个不同的字符串,这与不变性无关。
在显示的代码中没有创建新变量,只有a
。在分配中,a
每次都指向不同的字符串。要查看字符串是不可变的,请看一下这个例子:
a = 'abxde'
b = a.replace('x', 'c')
a
=> 'abxde'
b
=> 'abcde'
正如您所看到的,a
方法未修改replace()
,而是该方法创建了一个新字符串,我们将其分配给b
,这就是替换字符串结束的位置。执行更改的所有字符串方法都是这样的:它们不会就地修改原始字符串,它们会创建并返回一个新字符串。
答案 1 :(得分:1)
a
指定了对另一个字符串的引用答案 2 :(得分:1)
创建新对象并将a
更改为指向新对象。