为什么字符串对象上的字符串方法不会修改Python中的对象?

时间:2012-03-05 10:03:05

标签: python

我发现奇怪的是字符串对象上的字符串方法操作不会修改字符串对象。为什么?昨天我浪费了相当多的时间试图理解为什么我的代码在我最终发现它时无效。

2 个答案:

答案 0 :(得分:4)

字符串是python中的不可变类型。不可改变的主要优点是:

  • 简化多线程编程。
  • 可以用作字典键(将保持相同的哈希)

答案 1 :(得分:4)

字符串在Python中的设计是不可变的。这对许多其他语言来说也很常见,所以它不是特定于Python的东西。对于“为什么?”请参阅此处的these excellent answers,以及Eric Lippert的this great blog post

这就是为什么字符串操作总是返回一个新字符串(然后你可以重新分配给同一个名字,如

mystr = mystr.upper()