[Einführung in Python] Was ist das wichtige "if __name__ == '__ main__':" beim Umgang mit Modulen?

Referenzseite: [Einführung in Python] Was ist das wichtige "if name == '__ main__':" beim Umgang mit Modulen?

[Einführung in Python] Was ist das wichtige "if name == '__ main__':" beim Umgang mit Modulen?

Wenn ich Python studiere und mir Beispielprogramme ansehe, sehe ich oft den Satz "if name == '__ main__':". Main ist für das Schreiben von Programmen in anderen Programmiersprachen wie C und Java unverzichtbar, aber im Fall von Python wird main beim Codieren normalerweise nicht verwendet.

Dieser Satz spielt jedoch eine wichtige Rolle bei der Arbeit mit Modulen in Python. Dieses Mal werde ich erklären, was dies "wenn name == '__ main__':" bedeutet.

Was ist ein Modul?

Python-Code kann als Skriptdatei gespeichert und von anderen Programmen wiederverwendet werden. Diese Datei wird als Modul bezeichnet. "Importieren" wird beim Laden einer Standardbibliothek in Python verwendet. Wenn Sie jedoch ein Modul laden, das Sie mit import erstellt haben, können Sie die in diesem Modul definierten Funktionen und Klassen auch in anderen Programmen verwenden.

if name == Bedeutung von 'main':

Was ist name__?

Nachdem Sie nun wissen, was das Modul bedeutet, sprechen wir über die Variable "name". Angenommen, Sie haben das folgende Programm test.py.

test.py
def test():
    print('Hello World!')
    
if __name__ == '__main__':
    test()

Das Ergebnis der Ausführung dieses Programms ist wie folgt.

Hello World!

In diesem Beispiel haben wir gerade eine Funktion namens test definiert, die "Hello World!" Anzeigt. Ich habe die Variable "name" nirgendwo deklariert. Die Tatsache, dass test () ausgeführt wird, bedeutet jedoch, dass die if-Anweisung True zurückgibt. Was genau bedeutet das?

Schauen wir uns zuerst diese Variable mit dem Namen "name" an. Tatsächlich wird diese Variable name automatisch erstellt, wenn Sie ein Python-Skript auf einen Python-Drucker laden. Außerdem wird ihm automatisch der Modulname des laufenden Skripts zugewiesen.

if name == Bedeutung von 'main':

Ich fand heraus, dass eine Variable namens name automatisch erstellt wurde und der Modulname des ausgeführten Skripts automatisch zugewiesen wurde. Ich kann mich jedoch nicht erinnern, ein Modul namens main erstellt zu haben. Woher kommt dieser main?

Wenn Sie ein Python-Skript direkt ausführen, wird die Skriptdatei als Modul mit dem Namen "main" erkannt. Wenn Sie die Skriptdatei direkt ausführen, wird der Variable name automatisch der Wert main zugewiesen.

Mit anderen Worten, die Bedeutung von "if name == '__ main__':" war "nur ausführen, wenn es direkt ausgeführt wird, und nicht anders ausführen". Im vorherigen Beispiel haben wir test.py direkt ausgeführt, sodass die if-Anweisung True zurückgab und test () ausgeführt wurde.

Als Test habe ich einen Prozess hinzugefügt, um den ausgeführten Modulnamen in test.py anzuzeigen.

def test():
    print('Hello World!')
    
if __name__ == '__main__':
    test()
    
print('Modulname:{}'.format(__name__))  #Zeigen Sie den Namen des ausgeführten Moduls an

Wenn Sie dies tun, erhalten Sie die folgenden Ergebnisse:

Hello World! Modulname: main

Wenn Sie die Skriptdatei direkt ausführen, sehen Sie, dass der Modulname "main" lautet.

Was bedeutet "außer wenn direkt ausgeführt"? In diesem Fall wird diese Skriptdatei als Modul aus einem anderen Programm gelesen. Ich habe test2.py erstellt, das test.py als Modul importiert.

test2.py
import test  #test.Import py

Ausführungsergebnis

Modulname: Test

Wenn Sie test.py importieren und ausführen, sehen Sie, dass der Modulname "test" lautet. Das heißt, test.py wird als Testmodul ausgeführt, sodass name "test" zugewiesen wird. Daher gibt "if name == '__ main__':" False zurück, sodass test () nicht ausgeführt wurde.

"If name == '__ main__':" wird zum Testen beim Erstellen eines Moduls verwendet oder wenn Sie es derzeit nicht modularisieren möchten, aber unnötige Verarbeitung vermeiden möchten, wenn es modularisiert wird. Sie denken möglicherweise nicht an Modularisierung oder Wiederverwendung, während Sie ein Programm selbst erstellen, aber es ist eine wesentliche Idee, wenn Sie ein umfangreiches Programm erstellen. Erinnern wir uns daran.

Recommended Posts

[Einführung in Python] Was ist das wichtige "if __name__ == '__ main__':" beim Umgang mit Modulen?
[Einführung in Python] Wie wird mit der continue-Anweisung wiederholt?
[Einführung in Python] Was ist Python, die derzeit leistungsstärkste Programmiersprache?
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
[Einführung in Python] Was ist der Unterschied zwischen einer Liste und einem Taple?
Was tun, wenn der Server nicht mit dem Runserver python manage.py startet?
Was ist ein Algorithmus? Einführung in den Suchalgorithmus] ~ Python ~
Einführung in Python mit Atom (unterwegs)
[Einführung in die Udemy Python3 + -Anwendung] 54. Was ist Docstrings?
Was tun, wenn bei Verwendung von Python mit der NetBeans-IDE die Warnung "Falsche Python-Plattform" angezeigt wird?
Was tun, wenn bei der Installation von Python mit pyenv eine Fehlermeldung angezeigt wird?
[Einführung in Python] Wie iteriere ich mit der Bereichsfunktion?
[Python] Was tun, wenn beim Erstellen von Exe mit PyInstaller kein Modul mit dem Namen "pyproj.datadir" angezeigt wird?
[Einführung in Python] Was ist die empfohlene Pip-Installationsmethode für das Paketverwaltungssystem?
Was tun, wenn der Fortschrittsbalken in tqdm von Python nicht angezeigt wird?
Python "if __name__ ==" __main__ ":" bedeutet
[Python] if __name__ == Was ist '__ main__' :?
Ich möchte initialisieren, wenn der Wert leer ist (Python)
Was ich getan habe, um die Python2 EOL mit Zuversicht zu begrüßen
Versuchen Sie, die verstümmelten Zeichen im angehängten Dateinamen mit Python zu entschlüsseln
[Einführung in Python] So erhalten Sie Daten mit der Funktion listdir
[Python] Was ist eine with-Anweisung?
Wie man Japanern nicht entgeht, wenn man mit json in Python umgeht
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
[Python] Was ist @? (Über Dekorateure)
So gehen Sie mit dem Problem um, dass das aktuelle Verzeichnis verschoben wird, wenn Python von Atom ausgeführt wird
[Python] Was ist der sortierte Schlüssel?
[Python] Was ist Pip? Erläutern Sie die Befehlsliste und deren Verwendung anhand aktueller Beispiele
Was tun mit PYTHON Release?
Was tun, wenn beim Ausführen von Python eine Warnung zur unsicheren Plattform angezeigt wird?
Was tun, wenn der Inode unter EC2 Linux erschöpft ist?
Was tun, wenn ein Teil des Hintergrundbilds transparent wird, wenn Sie transparente Bilder mit Pillow kombinieren?
Wofür ist der Python-Unterstrich (_)?
Von der Einführung von JUMAN ++ bis zur morphologischen Analyse von Japanisch mit Python
Verwendung von Python mit Jw_cad (Teil 1 Was ist externe Transformation)
Was tun, wenn der Benutzername geändert wird und der Pfad der pyenv-Bibliothek nicht übergeben wird?
[Python] Was tun, wenn beim Importieren aus dem zu sys.path hinzugefügten Verzeichnis gegen PEP8 verstoßen wird?
So schreiben Sie, was zu tun ist, wenn die Anwendung zum ersten Mal in Qt for Python mit Designer angezeigt wird
FBX SDK Welche Fähigkeiten benötige ich, um ein Programm mit Python zu erstellen?
[PostgreSQL] Gewähren der Superuser-Berechtigung, wenn die Anzahl der Benutzer (Rollen) mit Superuser-Berechtigung 0 beträgt.
Was tun, wenn in python json .dumps eine Dezimalstelle enthalten ist?
[Python] Was ist ein formales Argument? So stellen Sie den Anfangswert ein
Was tun, wenn das über Scrapy heruntergeladene Ergebnis auf Englisch ist?
Was tun, wenn die Pipenv-Umgebung durch Aktualisierung von Homebrew beschädigt wird?
[Einführung in die Udemy Python3 + -Anwendung] 47. Verarbeiten Sie das Wörterbuch mit einer for-Anweisung
Was tun, wenn ipython und python mit unterschiedlichen Versionen starten?
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
Was tun, wenn der Chainer (Windows) -Beispielverzeichnis mit WinError 183 beendet wird?
Was tun, wenn beim Importieren von numpy mit VScode ein Fehler auftritt?
[Einführung in Python] So schreiben Sie eine Zeichenfolge mit der Formatierungsfunktion
Was tun, wenn in der Anaconda-Umgebung die Warnung "Die Umgebung ist konsistent ..." angezeigt wird
python So benachrichtigen Sie automatisch per Telefon, wenn das System ausfällt
[Einführung in die Udemy Python3 + -Anwendung] 33. if-Anweisung
Einführung in das Auffüllen von Python-Bildern Auffüllen von Bildern mit ImageDataGenerator
[Einführung in Python] Verwenden wir foreach mit Python
Was ist "Mahjong" in der Python-Bibliothek? ??
Der Weg zum Kompilieren zu Python 3 mit Thrift
Was tun, wenn der Fehler RuntimeError angezeigt wird: Python wird nicht als Framework installiert, wenn Sie versuchen, matplitlib und pylab in Python 3.3 zu verwenden