Heim > Backend-Entwicklung > Python-Tutorial > Wie kann die String-Verkettung unveränderliche Strings in Python mutieren?

Wie kann die String-Verkettung unveränderliche Strings in Python mutieren?

Barbara Streisand
Freigeben: 2024-10-29 20:22:30
Original
665 Leute haben es durchsucht

How Can String Concatenation Seem to Mutate Immutable Strings in Python?

Python-Strings: Unveränderliche Entitäten und Zuweisungsverwirrung

Python ist stolz auf die Unveränderlichkeit seiner Strings, was bedeutet, dass einmal erstellte String-Werte nicht geändert werden können . Das verwirrende Verhalten, das bei einer versuchten Zeichenfolgenverkettung auftritt, wirft jedoch Fragen zu dieser Unveränderlichkeit auf.

Das Rätsel: Unveränderliche Zeichenfolgen durch Verkettung mutieren?

Bedenken Sie den folgenden Codeausschnitt:

<code class="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  # Surprise!</code>
Nach dem Login kopieren

Der Code initialisiert zunächst drei Zeichenfolgen und verkettet sie dann mit Leerzeichen. Zu unserem Erstaunen ändert sich der Wert von a nach der Neuzuweisung zum verketteten Ergebnis.

Die Enthüllung: Variablenneuzuweisung, nicht String-Mutation

Der Schlüssel zum Verständnis dieses Verhaltens liegt darin in der Erkenntnis, dass Python-Strings tatsächlich unveränderlich sind, während ihre Referenzen veränderbar sind. Wenn wir a in der letzten Zeile neu zuweisen, ändern wir die vorhandene Zeichenfolge „Hund“ nicht. Stattdessen erstellen wir eine neue Zeichenfolge „Hund isst Leckereien“ und weisen ihre Referenz a zu.

Die unveränderliche Wahrheit bleibt

Im Wesentlichen speichert eine Zeichenfolgenvariable die Adresse (oder Verweis) auf einen Zeichenfolgenwert, nicht auf den Wert selbst. Wir können die Variable anderen Adressen neu zuweisen, aber die String-Werte an diesen Adressen bleiben unverändert.

Obwohl es daher so aussieht, als würden wir Strings durch Verkettungen ändern, erstellen wir lediglich neue Strings und weisen die Referenzen neu zu . Die Unveränderlichkeit von Strings bleibt erhalten.

Das obige ist der detaillierte Inhalt vonWie kann die String-Verkettung unveränderliche Strings in Python mutieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage