Heim >Backend-Entwicklung >Python-Tutorial >Warum erhalte ich in Python die Meldung „NameError: Name ist nicht definiert'?

Warum erhalte ich in Python die Meldung „NameError: Name ist nicht definiert'?

DDD
DDDOriginal
2024-11-01 10:37:30594Durchsuche

Why am I getting

Korrektur von „NameError: Name ist nicht definiert“ in Python

In Python tritt der Fehler „NameError: Name ist nicht definiert“ auf, wenn Sie versuchen, auf eine Variable zuzugreifen oder Klasse, die zuvor nicht im Code deklariert oder definiert wurde. Um dieses Problem zu beheben, sind die richtige Festlegung des Gültigkeitsbereichs und die Deklaration von Variablen und Klassen unerlässlich.

Sehen wir uns das von Ihnen bereitgestellte Code-Snippet an:

<code class="python">s = Something()
s.out()

class Something:
    def out():
        print("it works")</code>

Der Fehler wird durch die Tatsache verursacht, dass die Klasse „Something“ vorhanden ist wird definiert, nachdem es zum Erstellen einer Instanz von sich selbst verwendet wird. In Python interpretiert der Interpreter Code Zeile für Zeile, sodass die Something-Klasse zum Zeitpunkt der Ausführung der Zeile „s = Something()“ noch nicht bekannt ist.

Um dieses Problem zu beheben, müssen Sie Definieren Sie die Klasse, bevor Sie sie verwenden. Hier ist der korrigierte Code:

<code class="python">class Something:
    def out(self):
        print("it works")

s = Something()
s.out()</code>

Beachten Sie, dass wir auch self als erstes Argument zur out-Methode hinzugefügt haben. Dies ist beispielsweise für Instanzmethoden in Python erforderlich, die auf einer bestimmten Objektinstanz operieren. Durch die Übergabe von self als erstes Argument kann die Methode auf Instanzattribute zugreifen und den Status des Objekts ändern.

Mit diesen Korrekturen wird der Code ohne den NameError ausgeführt und gibt wie erwartet „es funktioniert“ aus.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Python die Meldung „NameError: Name ist nicht definiert'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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