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 5irgendwo im Speicher erstellt, und das Name-Objekt-Referenzpaar numwird in einem bestimmten Namespace erstellt. Wenn wir haben a = num, wird nichts kopiert, aber jetzt beziehen sich beide Variablen auf dasselbe Objekt und werden ademselben 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 spamsind, 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 cheesebeziehen wir uns auf das ursprüngliche Objekt, auf das von verwiesen wird spam. Ist das die richtige Erklärung?