Python-Hauptfunktion

In diesem Tutorial erfahren Sie, wie Sie das Attribut __name__ eines Python-Programms verwenden, um es in verschiedenen Kontexten dynamisch auszuführen.

Was ist die main () - Funktion in Python?

Einige Programmiersprachen haben eine spezielle Funktion, main()die als Ausführungspunkt für eine Programmdatei bezeichnet wird. Der Python-Interpreter führt jedoch jede Zeile seriell vom Anfang der Datei aus und hat keine explizite main()Funktion.

Python bietet andere Konventionen zum Definieren des Ausführungspunkts. Eine davon verwendet die main()Funktion und die Eigenschaft __name__ einer Python-Datei.

Was ist __name__ in Python?

Die Variable __name__ ist eine spezielle integrierte Python-Variable, die den Namen des aktuellen Moduls anzeigt.

Es hat unterschiedliche Werte, je nachdem, wo wir die Python-Datei ausführen. Schauen wir uns ein Beispiel an.

Ausführen von Python-Datei als Skript

Angenommen, wir haben eine Python-Datei namens helloworld.py mit folgendem Inhalt:

 print(__name__) 

Wenn wir helloworld.py über die Befehlszeile ausführen , wird es als Python-Skript ausgeführt. Wir können das Python-Programm mit dem folgenden Befehl ausführen:

$ python helloworld.py

Wenn wir das Programm als Skript ausführen, wird der Wert der Variablen __name__ auf __main__ gesetzt. Die Ausgabe des folgenden Programms lautet also:

 __Main__ 

Ausführen der Python-Datei als Modul

Wir können auch eine Python-Datei als Modul ausführen. Dazu müssen wir diese Datei in ein anderes Python-Programm importieren. Schauen wir uns ein Beispiel an.

Angenommen, wir haben eine Python-Datei namens main.py im selben Verzeichnis wie die Datei heloworld.py. Es hat folgenden Inhalt:

 import helloworld 

Wenn wir diese Datei ausführen, erhalten wir die folgende Ausgabe:

 Hallo Welt 

Hier sehen wir, dass beim Importieren eines Moduls auch der gesamte Code in der Moduldatei ausgeführt wird.

Wir können jedoch sehen, dass das Programm anstelle von __main__ den Namen des Moduls anzeigt, dh helloworld.

Dies liegt daran, dass beim Ausführen einer Python-Datei als Modul der Name des Moduls selbst der Variablen __name__ zugewiesen wird.

Verwenden von if bedingt mit __name__

Nachdem wir verstanden haben, wie der Variablen __name__ Werte zugewiesen werden, können wir die ifBedingungsklausel verwenden, um dieselbe Python-Datei in verschiedenen Kontexten unterschiedlich auszuführen.

Schauen wir uns ein Beispiel an.

Angenommen, wir ändern den Inhalt der Datei helloworld.py wie folgt:

 def main(): print("Hello World") if __name__=="__main__": main() 

Wenn wir es nun als Skript über die Befehlszeile ausführen, lautet die Ausgabe wie folgt:

 Hallo Welt 

Wenn wir es jedoch als Modul ausführen, indem wir es in die Datei main.py importieren , wird keine Ausgabe angezeigt, da die main()Funktion nicht aufgerufen wird.

Hier haben wir eine benutzerdefinierte main()Funktion in der Datei helloworld.py erstellt. Es wird nur ausgeführt, wenn das Programm als eigenständiges Skript und nicht als importiertes Modul ausgeführt wird.

Dies ist die Standardmethode zum expliziten Definieren der main()Funktion in Python. Dies ist einer der beliebtesten Anwendungsfälle der Variablen __name__ einer Python-Datei.

Interessante Beiträge...