logo

__name__ in Python

Der Name des aktuell ausgeführten Python-Skripts oder Moduls wird in der speziellen Python-Variable __name__ gespeichert. Mit Python 3.0 wurde die Variable __name__ eingeführt, die in Python 2. x fehlt. Der Wert des aktuellen Python-Skripts oder -Moduls, __main__, wird der Variablen __name__ zugewiesen, während es ausgeführt wird.

Was bedeutet _Name_?

Python verfügt über eine integrierte Variable namens __name__, die den Namen des Skripts oder Moduls speichert, das gerade ausgeführt wird. Der Skript- oder Modulname wird in der Variablen __name__ gespeichert, es sei denn, das aktuelle Modul wird ausgeführt. In diesem Fall wird ihm der Wert __main__ zugewiesen.

Wenn ein Python-Skript ausgeführt wird, sollte der Wert seiner Variable __name__ daher immer __main__ sein, wenn es in ein anderes Python-Skript importiert wird. Wenn nicht, wird der Name des Moduls angezeigt.

Beispiel :

Um dies besser zu verstehen, verwenden wir ein Beispiel. Mach ein Skript in Python mit dem Namen „testing.py“, und füge den folgenden Code hinzu:

Pandas Drehpunkt
 # Code to define a function def anything(): print('Value of the __name__ : ', __name__) anything() 

Ausgabe:

 Value of the __name__ : __main__ 

Erläuterung:

Das Skript wird sofort als Hauptprogramm ausgeführt, was durch die Ausgabe „Wert des Namens: main“ angezeigt wird. In Python wird der Wert der Variablen __name__ des Skripts automatisch auf „__main__“ gesetzt, wenn das Skript direkt ausgeführt wird. Diese Ausgabe bestätigt, dass das Skript direkt ausgeführt wird und nicht als Modul in ein anderes Skript importiert wird

Lassen Sie uns nun ein weiteres Python-Skript mit dem Namen erstellen mains.py und importieren Sie das vorherige darin.

Beispiel :

 # importing testing.py import testing testing.anything() 

Ausgabe:

Tiger im Vergleich zum Löwen
 Value of the __name__ : testing 

Erläuterung:

testen. everything() ist die Methode, die ausgeführt wird, wenn das Skript „testing.py“ mithilfe von Importtests in ein anderes Python-Skript importiert wird. In dieser Situation wird der Name des Moduls, in diesem Fall „testing“, als Wert der Variablen „__name__“ in „testing.py“ und nicht als „__main__“ festgelegt. Aus diesem Grund ist die Ausgabe des Tests. irgendetwas() ist „Wert des __name__: Testing.“ Dies veranschaulicht, wie sich die direkte Ausführung des Skripts im Vergleich zum Importieren als Modul auf den Wert der Variablen __name__ auswirkt.

Verwenden der Bedingung if name == main :

Wir benutzen das if-Anweisung und der Zustand __name__ == __main__ das zu erklären bestimmter Python-Code sollte nur sein Wird ausgeführt, wenn das Skript direkt ausgeführt wird .

Beispiel :

 # importing testing.py import testing if __name__ == __main__: testing.anything() 

In diesem Fall wird die Fähigkeit des aktuellen Moduls oder Skripts zur unabhängigen Ausführung mithilfe der Zeichenfolge __main__ ermittelt. Um dem Python-Interpreter anzuzeigen, dass ein Schlüsselwort in der Variablen __name__ reserviert oder speziell ist, stehen auf beiden Seiten des Begriffs zwei Unterstriche.

Codebeispiel für Namen in Python:

Wie bereits erwähnt, wird der Code beim Ausführen einer Codedatei direkt ausgeführt – er wird nicht einmal in eine andere Datei importiert – und als Ergebnis ändert sich der Wert der Variablen __name__ in __main__.

 # defining a function def anything(): print('It is a function in the ScriptP1.') if __name__=='__main__': anything() print('Called from the ScriptP1.') else: print('ScriptP1 is imported into another file.') 

Ausgabe:

 It is a function in the ScriptP1. Called from the ScriptP1. 

Erläuterung:

Die im Skript ScriptP1 angegebene Funktion everything() wird direkt als Hauptprogramm ausgeführt, wie die Ausgabe „Es handelt sich um eine Funktion im ScriptP1“ zeigt. gefolgt von „Von ScriptP1 aufgerufen.“ Wenn das Skript direkt in Python ausgeführt wird, wird die Variable __name__ auf „__main__“ gesetzt; Folglich ergibt die Bedingung if __name__=='__main__': True und ruft die Funktion everything() auf. Die folgende print-Anweisung überprüft, ob das Skript tatsächlich direkt ausgeführt wird.

Jetzt erstellen wir eine neue Python-Skriptdatei mit dem Namen ScriptP2.py, importieren ScriptP1.py darin und versuchen, die ScriptP1-Methode everything() aufzurufen.

Code: Der ScriptP2.py Code wird hier bereitgestellt:

Array in Java-Methoden
 import ScriptP1 if __name__=='__main__': ScriptP1.anything() print('Called from the ScriptP2.') 

Ausgabe:

 ScriptP1 is imported into another file. It is a function in the ScriptP1. Called from the ScriptP2. 

Erläuterung:

Das bereitgestellte Python-Skript zeigt, wie das Modul „ScriptP1“ in das aktive Skript importiert wird. Die Methode „anything()“ ist in „ScriptP1“ vorhanden und wird im Hauptskript aufgerufen. Diese Funktion wird aufgerufen und das Skript gibt „Called from the ScriptP2“ aus. um anzuzeigen, dass der Funktionsaufruf abgeschlossen wurde. Dieser Ereignisfluss zeigt an, dass auf die in „ScriptP1“ angegebene Funktion zugegriffen werden konnte und diese erfolgreich im Kontext des jetzt ausgeführten Skripts ausgeführt wurde, das als „ScriptP2“ identifiziert wird.

Als die Importanweisung für ScriptP1 innerhalb von ScriptP2 ausgeführt wurde, hatte die Variable __name__ den Wert ScriptP1 (den Modulnamen); Da aber ScriptP2 das erste Skript war, das ausgeführt wurde, hat es jetzt den Wert __main__.

Drucken des Werts von __name__ :

Lassen Sie uns den Wert der Variablen __name__ in jeder Ausführungsphase ausdrucken, damit Sie ihn besser verstehen.

Beispiel : Der Quellcode des Python-Skripts ScriptP1.py ist unten aufgeführt:

 print('Value or the variable __name__ : ' + __name__) 

Ausgabe:

 Value or the variable __name__ : __main__ 

Erläuterung:

Das bereitgestellte Python-Codebeispiel gibt den Wert der Variablen __name__ aus, der bei direkter Ausführung des Skripts als „main“ ausgewertet wird. Das bedeutet, dass beim direkten Start des Skripts der Codeblock, der nach der Bedingung if __name__ == '__main__': kommt, ausgeführt wird und nicht als Modul in ein anderes Skript importiert wird. Dieses Verhalten wird häufig verwendet, um zwischen der Ausführung eines Skripts als primäre Anwendung und dem Import in ein anderes Skript als Modul zu unterscheiden.

Beispiel 2: Und hier ist der Quellcode des Skripts ScriptP2.py:

 # importing the file ScriptP1.py import ScriptP1 print('Value or the variable __name__ : ' + __name__) 

Ausgabe:

 Value or the variable __name__ : __main__ 

Erläuterung:

Das bereitgestellte Python-Skript verwendet die Importanweisung, um die Datei „ScriptP1.py“ zu importieren. ' Bei der Ausführung wird 'main' als Wert der Variablen __name__ ausgegeben. Dies bedeutet, dass das Skript nicht als Modul in ein anderes Skript importiert wird, sondern direkt als primäre Anwendung ausgeführt wird. Bei der Ausführung von Python-Skripten ist dies das übliche Verhalten; Der Ausführungskontext des Skripts wird in der Variablen __name__ widergespiegelt.

NPM-Cache leer

Zusammenfassung :

In den meisten Programmiersprachen wird die Hauptmethode oder -funktion normalerweise als Punkt verwendet, an dem ein Programm ausgeführt wird. Aber was ist mit Python? Die Ausführung eines Python-Programms (Skripts) beginnt normalerweise bei Zeile Null oder der Einrückungsstufe 0 des Programms. Die Erstellung einer __name__-Variablen erfolgt jedoch, bevor ein Python-Programm ausgeführt wird. Diese Variable könnte verwendet werden, um die Hauptmethode in Python zu ersetzen.