Dies ist mein zweiter Tag, an dem ich Python lerne (ich kenne die Grundlagen von C ++ und etwas OOP), und ich habe einige leichte Verwirrung hinsichtlich der Variablen in Python.
So verstehe ich sie derzeit:
Python-Variablen sind Verweise (oder Zeiger?) Auf Objekte (die entweder veränderlich oder unveränderlich sind). Wenn wir so etwas haben num = 5
, wird das unveränderliche Objekt 5
irgendwo im Speicher erstellt, und das Name-Objekt-Referenzpaar num
wird in einem bestimmten Namespace erstellt. Wenn wir haben a = num
, wird nichts kopiert, aber jetzt beziehen sich beide Variablen auf dasselbe Objekt und werden a
demselben Namespace hinzugefügt.
Hier verwirrt mich mein Buch " Automatisiere das langweilige Zeug mit Python" . Da es sich um ein Neuling-Buch handelt, werden keine Objekte, Namespaces usw. erwähnt, und es wird versucht, den folgenden Code zu erklären:
>>> spam = 42
>>> cheese = spam
>>> spam = 100
>>> spam
100
>>> cheese
42
Die Erklärung, die es bietet, ist genau die gleiche wie die eines C ++ - Buches, über das ich mich nicht freue, da es sich um Verweise / Zeiger auf Objekte handelt. In diesem Fall wird in der dritten Zeile, da Ganzzahlen unveränderlich spam
sind, ein völlig neuer Zeiger / Verweis auf eine andere Stelle im Speicher zugewiesen, dh der Speicher, auf den er ursprünglich zeigte, wurde nicht geändert. Daher cheese
beziehen wir uns auf das ursprüngliche Objekt, auf das von verwiesen wird spam
. Ist das die richtige Erklärung?