Funktion ist nicht definierter Fehler in Python

Salman Mehmood 21 Juni 2023
  1. Vermeiden Sie den Aufruf einer Funktion vor der Deklaration in Python
  2. Vermeiden Sie die Verwendung falsch geschriebener Variablen- oder Funktionsnamen in Python
  3. Vermeiden Sie die Verwendung integrierter Module ohne Import in Python
  4. Beheben Sie Probleme mit Variablen außerhalb des Gültigkeitsbereichs in Python
Funktion ist nicht definierter Fehler in Python

Mit dieser Erklärung lernen wir, was passiert, wenn ein Python-Programm einen Fehler wie NameError: name '<functionName>' is not defined anzeigt, obwohl die Funktion im Skript vorhanden ist.

Wir lernen auch, was passiert, wenn wir falsch geschriebene Variablen oder eine eingebaute Funktion ohne Import verwenden, und wie man diese Fehler in Python vermeidet.

Vermeiden Sie den Aufruf einer Funktion vor der Deklaration in Python

Es gibt viele Gründe, den NameError: function is not defined in Python zu erhalten, und wir werden den häufigsten Grund für diesen Fehler diskutieren. Wenn wir die Funktion aufrufen, bevor wir sie in unserem Programm definieren, kann der Python-Interpreter die Funktionsdefinition nicht finden.

In diesem Fall wird die Funktion nicht gesehen und der Python-Interpreter hat die Funktionsdefinition noch nicht gefunden. Daher wird der Python-Interpreter verwirrt und gibt einen Fehler aus, was bedeutet, dass die Funktion nicht gemäß dem Interpreter definiert wurde.

Sehen wir uns dazu ein kurzes Beispiel an; In diesem Programm haben wir eine Aufrufanweisung geschrieben, bevor wir eine Funktion definieren. Da der Interpreter das Python-Programm Zeile für Zeile ausführt, trifft er beim Start der Ausführung mit der ersten Zeile auf einen bestimmten Funktionsaufruf, weiß aber nicht, was Hello() ist.

Hello()


def Hello():
    print("I will never be called")

Wenn wir dieses Python-Skript ausführen, wird es verwirrt, ob es sich um eine Funktion handelt, und der Python-Interpreter stoppt und gibt einen Fehler aus. Dies liegt daran, dass die Definition dieser Funktion nach dem Funktionsaufruf vorhanden ist; Aus diesem Grund können wir niemals eine Funktion aufrufen oder aufrufen, bevor wir sie definiert haben.

NameError: name 'Hello' is not defined

Wir müssen die Funktion definieren, bevor wir sie aufrufen, um diesen Fehler zu beheben.

Vermeiden Sie die Verwendung falsch geschriebener Variablen- oder Funktionsnamen in Python

Ein weiterer Grund für diesen Fehler ist, wenn ein Benutzer Fehler bei der Definition der korrekten Schreibweise einer Funktion macht; Aus diesem Grund erhält der Benutzer diese Art von Fehler. Python unterscheidet zwischen Groß- und Kleinschreibung, sodass Klein- und Großbuchstaben unterschiedliche Funktionen haben.

Wir untersuchen ein Beispiel, um zu demonstrieren, wie der Interpreter reagiert, wenn er eine falsch geschriebene Variable erhält.

Orange = "orange"

for i in orange:
    print(i)

Ausgang:

NameError: name 'orange' is not defined

Wenn wir das Python-Skript ausführen, erhalten wir einen Fehler, der besagt, dass 'orange' is not defined ist, aber dieses Mal haben wir keinen Rechtschreibfehler gemacht. Warum erhalten wir diesen Fehler, obwohl wir diese Variable definiert haben? Das liegt daran, dass wir diese Variable definiert haben, die mit einem Großbuchstaben beginnt und versucht, mit Kleinbuchstaben darauf zuzugreifen.

Das gleiche Szenario wird mit der Funktion angewendet. Es funktioniert, wenn wir die Variable Orange mit orange überschreiben.

orange = "orange"

for i in orange:
    print(i)

Ausgang:

o
r
a
n
g
e

Vermeiden Sie die Verwendung integrierter Module ohne Import in Python

Nehmen wir an, Sie schreiben ein Python-Programm und wenn Sie eine der eingebauten Funktionen wie print(), input() usw. verwenden möchten, können Sie sie in Ihrem Code verwenden. Was passiert, wenn Sie eine Funktion verwenden müssen, die nicht in Python integriert ist, aber in bestimmten Modulen vorhanden ist?

Um eine Funktion zu verwenden, die Teil bestimmter Module ist, müssen Sie dieses Modul zuerst in Ihr Python-Programm importieren. Einige Anfänger scheitern, wenn sie versuchen, eine Funktion aus einem Modul zu verwenden, anstatt dieses spezifische Modul zu importieren; schau dir ein beispiel an.

In diesem Programm versucht der Benutzer, zufällige Werte zu generieren, aber wenn der Benutzer diesen Code ausführt, erhält der Benutzer denselben Fehler, den wir besprochen haben. Der Grund dafür ist, dass der Benutzer fehlschlägt, der versucht, auf die Funktion random() zuzugreifen, ohne sein Modul zu importieren, das random ist.

Randome_Values = random.random()

print(Randome_Values)

Ausgang:

NameError: name 'random' is not defined

Es funktioniert, wenn der Benutzer ein zufälliges Modul in das Python-Skript importiert.

import random

Randome_Values = random.random()
print(Randome_Values)

Ausgang:

0.07463088966802744

Manchmal schreiben die Benutzer das Python-Modul selbst, stehen aber vor dem Problem und erhalten denselben Fehler.

Dies liegt daran, dass der Benutzer versucht, eine Funktion aus einer anderen Datei aufzurufen, nachdem er eine Klasse importiert hat, aber es ist möglich, dass der Benutzer diese Datei nicht gespeichert hat, in der die Funktion definiert ist, weshalb der Benutzer diesen Fehler erhält. Stellen Sie also sicher, dass Sie es speichern, bevor Sie diese Funktion aufrufen.

Beheben Sie Probleme mit Variablen außerhalb des Gültigkeitsbereichs in Python

Ein weiterer Grund, warum die meisten Anfänger scheitern, ist, wenn sie versuchen, auf eine Variable außerhalb des Gültigkeitsbereichs zuzugreifen und denselben Fehler erhalten. Schauen wir uns ein Beispiel an, wo wir ein besseres Verständnis bekommen.

def take_order():
    orders = input("Enter your orders and separate it using comma :").split(",")
    return orders


def Delete_Orders():
    deleted_orders = input("Enter your order name which you want to cancel :")
    orders.remove(deleted_orders)
    return orders


print(take_order())

print(Delete_Orders())

Wenn wir dieses Python-Skript ausführen, funktioniert die Funktion take_order() korrekt, aber der Fehler tritt auf, wenn wir die Funktion Delete_Orders() aufrufen, um die Bestellung aus der Liste orders zu löschen.

NameError: name 'orders' is not defined

Dies liegt daran, dass die Variable orders in der Funktion take_order() definiert ist und wir versuchen, über die Funktion Delete_Orders() darauf zuzugreifen. Deshalb, wenn die Ausführungskontrolle dort ansetzt, wo wir den Artikel aus der Liste Aufträge entfernen; Es gibt einen Fehler aus, weil wir außerhalb des Gültigkeitsbereichs darauf zugreifen.

Um dieses Problem zu beheben, müssen wir eine Variable deklarieren, die einen leeren String speichert, und der Variablenname wäre orders. Danach müssen wir das Schlüsselwort global verwenden, das wir eine orders-Variable nennen, um es wiederverwendbar zu machen.

orders = ""


def take_order():
    global orders
    orders = input("Enter your orders and separate it using comma :").split(",")
    return orders


def Delete_Orders():
    deleted_orders = input("Enter your order name which you want to cancel :")
    orders.remove(deleted_orders)
    return orders


print(take_order())
print(Delete_Orders())

Ausgang:

Enter your orders and separate it using comma :pizza,drink,water
['pizza', 'drink', 'water']
Enter your order name which you want to cancel :water
['pizza', 'drink']
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Verwandter Artikel - Python Error