在这个例子中我们会发现,虽然字符串‘abc’发生了替换,但是再次查看a时,显示的仍是‘abc’。为什么呢?是因为在这里a其实只是一个变量,’abc’才是一个对象。replace方法是作用在字符串‘abc’上的。这个方法并没有改变字符串的内容,而是创建了一个新的字符串并返回,如果我们把这个新字符串赋给一个新变量b,此时变量a继续指向原字符串,变量b则指向新的字符串了:
所以,对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。这些方法只会创建新的对象并返回,从而保证对象本身永远不可变。
参考资料:python3廖雪峰教程