>>> def foo(s):
... return id(s)
...
>>> x = 'blah'
>>> id(x) == foo(x)
True
如果您需要“修改”函数中的字符串,请返回新字符串并将其分配回原始名称:
>>> def bar(s):
... return s + '!'
...
>>> x = 'blah'
>>> x = bar(x)
>>> x
'blah!'
不幸的是,当对大字符串进行小的更改时,这可能会非常低效,因为大字符串会被复制。处理此问题的pythonic方法是将字符串保存在列表中,并在将所有部分组合在一起后将它们连接在一起。