python - Python 中的 String 是不可变的吗?

标签 python string immutability

我有一个关于 Python 中字符串概念的问题。根据我的理解,字符串是语言中不可变的一部分。例如:

a = 'Emiliano'
a[0] = 'r'
print(a)

结果:

Type Error: 'str' object does not support item assignment

所以,我知道我需要创建另一个变量,但为什么在下面的情况下,如果我更改变量的整个字符串,Python 不会检索到任何错误?

a = 'Emiliano'
a = 'David'
print(a)

结果:David

最佳答案

它是赋值,a指向Emiliano所在的内存,所以a=some other string它只是改变了a指向的位置至

更改字符串主要是通过复制原始字符串并操纵复制过程来完成,从而返回一个新的字符串对象

关于python - Python 中的 String 是不可变的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49831654/

相关文章:

python - 如何检查dask数据框是否为空

python - Gensim的相似度: how does it work?

python - Visual Studio Code 不断抛出两个模块导入的 Unresolved 导入错误

javascript - 使用 jQuery 从 URL 获取 YouTube 视频 ID

vba - VBA 中的 StringFromIID - 避免手动管理内存的好方法是什么?

arrays - 如何创建和初始化不可变数组?

python - "ImportError: module ' xxxxxxxx ' has no attribute ' 主要 '"将项目移植到 Heroku 时

c - 在什么情况下(如果有的话) strcat() 会挂起?

scala - 案例类的复制方法是否使用结构共享?

java - 如何使用 setter 而不是 final 变量的构造函数?