[Python-Anfänger] Wenn __name__ == Bewegen Sie Ihre Hand, um '__ main__' zu verstehen.

was wirst du tun

Durch Setzen von if \ _ \ _ name \ _ \ _ == '\ _ \ _ main \ _ \ _': Ich habe erlebt, wie sich die Ausgabe in 4 Schritten + 2 Schritten ändert.

Dieses Mal werde ich das Verhalten zeigen, wenn .py indirekt mit einem Tool wie "spyder" ausgeführt wird, das häufig von Anfängern verwendet wird.

Wenn Sie "$ python XXX.py" direkt im Terminal ausführen möchten, lesen Sie die Details unter am Ende dieses Artikels.

Trainieren

__name__

1. Schreiben Sie zuerst eine Funktion, die "print (" Hallo! ")" Und speichern Sie sie als "hello.py".

Beispiel 1_hello.Py definieren


#hello.py
def function():
    print('Hello!')

2 . Versuchen Sie, "hello.py" mit der nächsten neuen .py zu importieren

Beispiel 2_hello.py importieren


import hello
hello.function()

#Inhalt ausgeben
#--------------------
# Hello!
#--------------------

↓ Sie können sehen, dass die Funktion ausgeführt wurde.

3 Bearbeiten Sie \ .hello.py und versuchen Sie, \ _ \ _ name \ _ \ _ zusammen auszugeben

Beispiel 3_Name hinzufügen


#hello.py
def function():
    print('Hello!')
    print(' __name__Was wird dann angezeigt?..!? -->' ,  __name__)

4 . Wenn ich erneut versuche zu importieren ...

Beispiel 4_hello.Versuchen Sie es mit py


import hello
hello.function()

#Inhalt ausgeben
#--------------------
#Hello!
#__name__Was wird dann angezeigt?..!? --> hello
#--------------------

↓ Im Teil \ _ \ _ name \ _ \ _ wurde "Hallo" von "Hallo.py" angezeigt!

Schlussfolgerung (Was ist \ _ \ _ Name \ _ \ _)

Es stellt sich heraus, dass \ _ \ _ name \ _ \ _ den Modulnamen "Hallo" des importierten Moduls "Hallo.py" enthält.

__main__

Bearbeiten Sie als Nächstes hello.py und fügen Sie \ _ \ _ main \ _ \ _ hinzu.

Beispiel 1_Setzen Sie "Sato" in die Hauptleitung.


#hello.py
def function(name):
    print('Hello!',name)
    print('Apropos__name__Der Inhalt ist-->',__name__)

if __name__ == '__main__':
    print('Wird die Funktion in main ausgeführt?..?',function('Sato'))

Versuchen Sie, hello.py auszuführen.

Beispiel 2_Anzeige "Tanaka"


import hello
hello.function('Tanaka')
#Inhalt ausgeben
#--------------------
#Hello! Tanaka
#Apropos__name__Der Inhalt ist--> hello
#--------------------

↓ \ _ \ _ Name \ _ \ _ blieb der Modulname "Hallo" des Moduls "Hallo.py". Daher wurde der Inhalt von if __name__ == '__ main __': (vorbereitetes "Sato") nicht ausgeführt, obwohl es in function () war.

Schlussfolgerung (Was ist \ _ \ _ main \ _ \ _)

Es stellt sich heraus, dass durch Setzen von if __name__ == '__ main __': das folgende \ _ \ _ main \ _ \ _ nicht ausgeführt wird.

Zusammenfassung

Schreiben Sie beim Importieren den Teil, der nicht ausgeführt wird, unter if __name__ == '__ main __':.

Referenz [Python] if name == Was ist '__ main__':?

Recommended Posts

[Python-Anfänger] Wenn __name__ == Bewegen Sie Ihre Hand, um '__ main__' zu verstehen.
Bewegen Sie Ihre Hand, um die Chi-Quadrat-Verteilung zu verstehen
Python "if __name__ ==" __main__ ":" bedeutet
[Python] if __name__ == Was ist '__ main__' :?
Wenn __name__ == Heben Sie Ihre Hand, wenn Sie den Code unter '__ main__' schreiben.
[Ergänzungskurs] Wenn __name__ == Wenn Sie den Code unter '__ main__' schreiben, heben Sie Ihre Hand.
Tool zum Verschieben von Verzeichnissen in das Python-Paket (pycd)
[Python] Führen Sie UIKit3 in das Django-Projekt ein
Möchten Sie Python-Dekoratoren Typhinweise hinzufügen?
Python-Handspiel (einzeilige Notation von if)
Liste des zu verschiebenden und zu merkenden Python-Codes
[Python] Geben Sie Ihr Bestes, um SQL Alchemy zu beschleunigen
[Einführung in Python] Was ist das wichtige "if __name__ == '__ main__':" beim Umgang mit Modulen?