Ich habe den folgenden Code, der eine Notiz erstellt und einem Notizbuch hinzufügt.
Meine Frage bezieht sich mehr auf die globale Variable last_id
. Wenn ich es als Klassenvariable deklariere, d. H. Innerhalb der Klassennotiz, erhalte ich den folgenden Fehler, aber wenn ich außerhalb der Klasse deklariere, funktioniert mein Code einwandfrei.
Hier sind meine Klarstellungen:
last_id
definiert werden, wenn ich es innerhalb meiner Funktion als globale Variable deklariere? Error:
code.py
python ist ein wenig expliziter, woher Attribute kommen als andere objektorientierte Sprachen; Sie können einen Zähler auf Klassenebene haben:
%Vor% Sie müssen auf last_id
als self.last_id
verweisen, damit Python die Instanz sehen kann (und da die Klasse noch nicht da ist).
Wenn Sie
schreiben %Vor% Innerhalb Ihrer Funktion erstellen Sie keine neue globale Variable. Was Sie gerade tun, ist "Anstatt eine neue lokale Variable zu erstellen und sie dem Namen last_id
zuzuordnen, verknüpfen Sie diesen Namen stattdessen mit einer bereits vorhandenen Variablen im umschließenden Bereich, die den Namen last_id
"
Wenn es noch keine Variable namens last_id
gibt, dann verweist global last_id
auf nichts, bis Sie darauf schreiben. Wenn Sie jedoch darauf schreiben, wird es im globalen Bereich erstellt. Zum Beispiel:
Die global
-Anweisung bindet keinen Namen, sondern teilt dem Compiler lediglich mit, dass die Variable im globalen Gültigkeitsbereich neu gebunden werden soll. Sie müssen die anfängliche Bindung immer noch selbst durchführen.
Tags und Links python global-variables