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
__name__
Beispiel 1_hello.Py definieren
#hello.py
def function():
print('Hello!')
Beispiel 2_hello.py importieren
import hello
hello.function()
#Inhalt ausgeben
#--------------------
# Hello!
#--------------------
↓ Sie können sehen, dass die Funktion ausgeführt wurde.
Beispiel 3_Name hinzufügen
#hello.py
def function():
print('Hello!')
print(' __name__Was wird dann angezeigt?..!? -->' , __name__)
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!
Es stellt sich heraus, dass \ _ \ _ name \ _ \ _ den Modulnamen "Hallo" des importierten Moduls "Hallo.py" enthält.
__main__
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'))
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.
Es stellt sich heraus, dass durch Setzen von if __name__ == '__ main __':
das folgende \ _ \ _ main \ _ \ _ nicht ausgeführt wird.
Schreiben Sie beim Importieren den Teil, der nicht ausgeführt wird, unter if __name__ == '__ main __':
.
Referenz [Python] if name == Was ist '__ main__':?
Recommended Posts