一尘不染

Python字符串不是一成不变的吗?那么为什么a +“” + b有效呢?

python

我的理解是Python字符串是不可变的。

我尝试了以下代码:

a = "Dog"
b = "eats"
c = "treats"

print a, b, c
# Dog eats treats

print a + " " + b + " " + c
# Dog eats treats

print a
# Dog

a = a + " " + b + " " + c
print a
# Dog eats treats
# !!!

Python是否应该阻止分配?我可能错过了一些东西。

任何想法?


阅读 524

收藏
2020-02-22

共1个答案

一尘不染

首先a指向字符串“ Dog”。然后,你将变量更改a为指向新的字符串“ Dog eats对待”。你实际上并未更改字符串“ Dog”。字符串是不可变的,变量可以指向它们想要的任何东西。

2020-02-22