Namensfehler behoben: Variable ist in Python nicht definiert

Zeeshan Afridi 21 Juni 2023
  1. Gültigkeitsbereich von Variablen in Python
  2. der NameError in Python
  3. Beheben Sie den NameError: Variable is not defined in Python
Namensfehler behoben: Variable ist in Python nicht definiert

Dieser Artikel behandelt die Ursachen von NameError in Python und wie man den speziellen Fehler NameError: Variable is not defined behebt.

Gültigkeitsbereich von Variablen in Python

Der Gültigkeitsbereich von Variablen implementiert Barrierefreiheitsbeschränkungen für Variablen, auf die entweder aus einem bestimmten Block heraus zugegriffen werden kann oder nicht. Die Lebensdauer einiger Variablen liegt nur innerhalb eines bestimmten Blocks, während auf andere im gesamten Programm zugegriffen werden kann.

Lassen Sie es uns anhand eines Beispiels verstehen:

# global scope
a = 3

# Function to add two numbers


def displayScope():

    # local varaible
    b = 2
    # sum a and b
    c = a + b

    print("The sum of a & b = ", c)


displayScope()

Ausgang:

The sum of a & b =  5

In diesem Beispiel ist die Variable a oben definiert und in keinen Block eingeschlossen, sodass sie im gesamten Programm zugänglich ist. Aber die Variable b wird lokal innerhalb des Funktionsbausteins definiert; Daher ist es außerhalb des Blocks nicht zugänglich.

der NameError in Python

In Python tritt der NameError zur Laufzeit während der Ausführung einer Variablen, Bibliothek, Funktion oder eines Strings ohne die einfachen oder doppelten Anführungszeichen auf, die im Code ohne Deklaration Typen sind. Zweitens, wenn Sie die Funktionen oder Variablen aufrufen, deren Geltungsbereich lokal ist und auf die nicht global zugegriffen werden kann, wirft der Python-Interpreter den NameError und sagt, dass der Name 'Name' nicht definiert ist.

Ursachen des NameError in Python

Ursache des NameError ist der Aufruf einer ungültigen Funktion, Variable oder Bibliothek. Um den Grund klar zu verstehen, lassen Sie uns ein Beispiel haben:

# invalid funciton call
def test_ftn():
    return "Test function"


print(test_ft())  # calling the the function which does not exist

# printing invalid varaible
name = "Zeeshan Afridi"
print(Name)  # printing variable `Name` which does not exist

Beides sind die Ursachen für NameError in Python, weil wir im ersten Beispiel eine nicht verfügbare Funktion aufgerufen haben. Der Funktionsname ist test_ftn, wobei wir die Funktion test_ft aufrufen.

Im zweiten Beispiel wird die Variable name der Zeichenfolge Zeeshan Afridi zugewiesen, aber wir drucken Name, der nicht einmal im Programm deklariert ist. Deshalb haben wir den NameError: name 'test_ft' is not defined erhalten.

Beheben Sie den NameError: Variable is not defined in Python

In den obigen Beispielen haben wir den NameError erhalten, weil wir eine Variable außerhalb des Gültigkeitsbereichs aufgerufen haben. Mal sehen, wie wir diesen NameError: variable is not defined beheben können.

# global scope
a = 3

# Function to add two numbers


def displayScope():

    # local varaible
    b = 2


print("The value of a = ", a)
print("The value of b = ", b)

Ausgang:

The value of a =  3
NameError: name 'b' is not defined

Der obige Code hat den Wert a angezeigt, da er im gesamten Programm zugänglich ist. Andererseits ist die Variable b lokal definiert, also nur der Funktion displayScope() bekannt; Sie können außerhalb des Geltungsbereichs nicht darauf zugreifen.

Dies hat den Fehler NameError: name 'b' is not defined verursacht.

Glücklicherweise hat Python das Reserve-Schlüsselwort global eingeführt, um dieses Problem zu beheben. Dieses Reserve-Schlüsselwort global wird verwendet, um den Gültigkeitsbereich einer lokalen Variablen zu erweitern, sodass auf die Variable im gesamten Programm global zugegriffen werden kann.

Lassen Sie es uns anhand eines Beispiels verstehen:

# global scope
a = 3

# Function to add two numbers


def displayScope():

    # local scope
    global c
    z = 2
    c = a + b


print("The value of c =", c)

Ausgang:

The value of c = 5

In diesem Beispiel ist die Variable c innerhalb des lokalen Gültigkeitsbereichs von displayScope() definiert, aber wir können aufgrund des magischen Schlüsselworts global global darauf zugreifen. Jetzt ist c durchgängig zugänglich, weil es als global definiert ist.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Verwandter Artikel - Python Error