Namensfehler behoben: Variable ist in Python nicht definiert
- Gültigkeitsbereich von Variablen in Python
-
der
NameError
in Python -
Beheben Sie den
NameError: Variable is not defined
in Python
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 is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedInVerwandter Artikel - Python Error
- Adresse wird bereits verwendet Fehler in Python
- AttributeError: __Exit__ in Python
- AttributeError: 'Dict'-Objekt hat kein Attribut 'Append' in Python
- AttributeError: 'NoneType'-Objekt hat kein Attribut 'Text' in Python
- AttributeError: Int-Objekt hat kein Attribut
- AttributeError: Modul Urllib hat keine Attributanforderung