如果一个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
为指向新对象。