Übergabe per Referenz beim Zuweisen von Variablen
In der Python-Sprache werden Objekte per Referenz übergeben. Bei der Zuweisung eines Werts wird der Variablen die Referenz (nicht der Wert) des Objekts zugewiesen, unabhängig davon, ob das Objekt neu erstellt wurde oder bereits vorhanden ist.
Um den Überblick über Objekte im Speicher zu behalten, verwendet Python eine einfache Technik namens Referenzzählung. Mit anderen Worten: Python zeichnet intern auf, wie viele Referenzen jedes verwendete Objekt hat. Eine interne Tracking-Variable, Referenzzähler genannt. Wie viele Referenzen jedes Objekt hat, wird als Referenzzählung bezeichnet. Wenn ein Objekt erstellt wird, wird ein Referenzzähler erstellt. Wenn das Objekt nicht mehr benötigt wird, dh wenn der Referenzzähler des Objekts 0 wird, wird es durch Müll gesammelt.
Wenn ein Objekt erstellt und einer Variablen zugewiesen (ein Verweis darauf) wird, wird der Referenzzähler des Objekts auf 1 gesetzt. Wenn dasselbe Objekt (Referenz) einer anderen Variablen zugewiesen oder als Parameter an eine Funktion, Methode oder Klasseninstanz übergeben oder als Mitglied eines Fensterobjekts zugewiesen wird, wird ein neuer Verweis auf das Objekt erstellt oder als aufgerufen Alias wird es erstellt (der Referenzzähler des Objekts wird automatisch um 1 erhöht).
Wenn eine Referenz auf ein Objekt zerstört wird, wird der Referenzzähler dekrementiert. Das offensichtlichste Beispiel ist, dass, wenn eine Referenz ihren Gültigkeitsbereich verlässt, was am häufigsten am Ende einer Funktion der Fall ist, alle lokalen Variablen automatisch zerstört werden und der Referenzzähler des Objekts dekrementiert wird. Wenn eine Variable einem anderen Objekt zugewiesen wird, wird der Referenzzähler des ursprünglichen Objekts automatisch um 1 verringert. Andere Möglichkeiten, die Referenzanzahl eines Objekts zu verringern, umfassen die Verwendung der del-Anweisung zum Löschen einer Variablen oder das Verschieben eines Objekts aus einem Fensterobjekt (oder wenn die Referenzanzahl des Containerobjekts selbst 0 wird).
Im obigen Beispiel sorgt a = 1 dafür, dass die Variable a auf das ganzzahlige Objekt 1 zeigt, b = a sorgt dafür, dass die Variable b ebenfalls auf das ganzzahlige Objekt 1 zeigt, und zwar über die Anweisung id( a), id(b) kann erkennen, dass die Speicheradresse, auf die Variable a und Variable b zeigen, dieselbe ist. Die Anweisung a = 2 weist das neue Objekt 2 der Variablen a zu. Zu diesem Zeitpunkt zeigt die Variable a auf das Objekt 2 und die Variable b zeigt weiterhin auf das ursprüngliche Objekt 1. Anhand der Anweisungen id(a) und id(b) können Sie erkennen, dass die Speicheradressen, auf die die Variablen a und b zeigen, unterschiedlich sind.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie eine Referenz, um eine Variable in Python zu ändern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!