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