Heim > Backend-Entwicklung > Python-Tutorial > Sind Python-Variablen Zeiger oder Referenzen?

Sind Python-Variablen Zeiger oder Referenzen?

Mary-Kate Olsen
Freigeben: 2024-12-05 05:20:09
Original
433 Leute haben es durchsucht

Are Python Variables Pointers or References?

Sind Python-Variablen Referenzen?

Die Vorstellung, dass „Variablen in Python Zeiger sind“, kann irreführend sein. Um dieses Missverständnis zu klären, untersuchen wir zwei Codebeispiele:

Beispiel 1:

i = 5
j = i
j = 3
print(i)
Nach dem Login kopieren

Wenn Variablen Zeiger wären, würden wir erwarten, dass die Ausgabe 3 ist. Allerdings , ist die tatsächliche Ausgabe 5. Dies liegt daran, dass Python-Variablen nicht den tatsächlichen Wert eines Objekts, sondern einen Verweis darauf speichern it.

Beispiel 2:

i = [1,2,3]
j = i
i[0] = 5
print(j)
Nach dem Login kopieren

Im Gegensatz zum ersten Beispiel ist die Ausgabe hier [5,2,3]. Diesmal wirkt sich die Änderung des ersten Elements der an i gebundenen Liste auch auf die an j gebundene Liste aus. Dies liegt daran, dass sowohl i als auch j auf dasselbe Listenobjekt verweisen.

Was sind Python-Variablen wirklich?

Um Python-Variablen richtig zu verstehen, müssen wir sie als Referenzen statt Hinweise. Wenn wir einer Variablen einen Wert zuweisen, binden wir diese Variable im Wesentlichen an ein bestimmtes Objekt im Speicher.

Der Hauptunterschied zwischen Referenzen und Zeigern besteht darin, dass Referenzen nicht neu zugewiesen werden können, um auf ein anderes Objekt zu verweisen. Stattdessen bleiben sie dauerhaft an das ursprüngliche Objekt gebunden.

In den obigen Beispielen sind i und j Verweise auf die ursprünglichen int(5)- bzw. list([1,2,3])-Objekte. Das Ändern des Werts von i wirkt sich nicht auf j aus, da beide auf unterschiedliche Objekte verweisen. Das Ändern des Werts eines Elements in der Liste wirkt sich jedoch sowohl auf i als auch auf j aus, da beide auf dasselbe Listenobjekt verweisen.

Das obige ist der detaillierte Inhalt vonSind Python-Variablen Zeiger oder Referenzen?. 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