Ma compréhension était que les chaînes Python sont immuables.
J'ai essayé le code suivant:
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 n'aurait-il pas dû empêcher l'affectation? Il me manque probablement quelque chose.
Une idée?
id()
fonction. a
aura un identifiant différent avant et après l'affectation, indiquant qu'il pointe vers différents objets. De même avec du code comme b = a
vous le trouverez a
et b
aurez le même identifiant, indiquant qu'ils référencent le même objet.