Enthüllung der veränderlichen Natur von Python-Strings: Eine Erkundung von a " " b
Trotz der lange gehegten Überzeugung, dass Python-Strings von Natur aus sind unveränderlich, stellt eine eigenartige Beobachtung diese Vorstellung in Frage. Bei der Verkettung von Zeichenfolgen mit der Syntax a " " b scheinen Zeichenfolgen Änderungen zu unterliegen. Lassen Sie uns dieses rätselhafte Verhalten untersuchen.
Untersuchung des Codes
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 # !!!</code>
Die Anomalie verstehen
Nach unserem Verständnis sind Python-Strings unveränderlich, was eine direkte Manipulation ihres Inhalts verhindert. Der obige Code zeigt jedoch das Gegenteil. Beim Ausführen der Zeile a = a " " b " " c scheint die Zeichenfolge, auf die a zeigt, geändert worden zu sein, was zu Verwirrung führt.
Das Geheimnis lüften
Hier liegt der Schlüssel zum Verständnis dieses Verhaltens: Python-Strings selbst bleiben unveränderlich. Stattdessen wird die Variable a einem neuen String-Objekt neu zugewiesen, das den verketteten Inhalt enthält.
Im ersten Teil des Codes zeigt a zunächst auf den String „Dog“. Wenn wir Zeichenfolgen mithilfe eines „“ b verketten, wird im Speicher eine neue Zeichenfolge erstellt, die das Ergebnis der Verkettung enthält, in diesem Fall „Hund isst Leckerlis“. Allerdings zeigt a immer noch auf die ursprüngliche Zeichenfolge „Hund“.
Wenn wir a den Wert a „ „ b „ „ c zuweisen, wird ein neues Zeichenfolgenobjekt erstellt, das das verkettete Ergebnis „Hund isst Leckerlis“ enthält ", und a zeigt jetzt auf diese neue Zeichenfolge. Die ursprüngliche „Hund“-Zeichenfolge bleibt unverändert und ist weiterhin im Speicher zugänglich.
Daher ist die offensichtliche Mutation von Zeichenfolgen in diesem Kontext ein Ergebnis der Neuzuweisung der Variablen, die auf die Zeichenfolge zeigt, und keine Änderung der Zeichenfolge selbst. Python-Strings behalten ihre Unveränderlichkeit bei und bieten gleichzeitig die Flexibilität, die auf sie verweisenden Referenzen zu ändern.
Das obige ist der detaillierte Inhalt vonWarum erscheinen Python-Strings veränderbar, wenn „a' „b' verwendet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!