Python Hinweis: Modularisierung: __name__ == Verwendung von '__ main__'

Motivation

Oft in Python-Skripten gesehen,

pseudo.py


if __name__ == '__main__':

Ich wusste nicht was es war.

Modularisierung

Ich habe dies als Referenz verwendet. http://programming-study.com/technology/python-if-main/

In Python ziehen Sie häufig etwas, das in anderen Skripten definiert ist, und verwenden es. Importieren Sie die Bibliothek. Dies ist auch nützlich, wenn Sie dies eventuell tun möchten (obwohl dies derzeit nicht möglich ist), indem Sie die von Ihnen definierte Funktion in ein anderes Skript einfügen und als Modul importieren.

\ _ \ _ Name \ _ \ _ oben ist eine Variable, die automatisch erstellt wird, wenn das Skript ausgeführt wird und wenn das Skript direkt ausgeführt wird. \ _ \ _ Name \ _ \ _ ist \ _ \ _ main \ _ Der Name \ _ wird gespeichert.

Mit anderen Worten, die obige if-Anweisung verzweigt sich abhängig davon, ob das Skript direkt von der Shell ausgeführt wurde.

Wie unten gezeigt, habe ich ein Skript geschrieben, das Ausführungsanweisungen innerhalb und außerhalb der if-Anweisung enthält.

name_is_main.py


def func(a,b):
  return a + b

print('MY NAME IS ' + __name__)

if __name__ == '__main__':
  print('hello!')
  print(func(3,4))

Ausführungsergebnis: MY NAME IS __main__ hello! 7

name_is__not_main.py


import name_is_main as nim

print('my name is' + __name__)

if __name__ == '__main__':
  print('world!')
  print(nim.func(7,8))

Ausführungsergebnis: MY NAME IS name_is_main my name is __main__ world! 15

In name \ _is \ _main.py wurde \ _ \ _ main \ _ \ _ unverändert in \ _ \ _ name \ _ \ _ eingegeben, und der Inhalt der if-Anweisung wurde ebenfalls ausgeführt.

In name \ _is \ _ not \ _main.py wurde auch die print-Anweisung außerhalb der if-Anweisung des importierten Namens \ _is \ _main.py ausgeführt. Im importierten Namen \ _is \ _main.py wird der Skriptname \ _is \ _main in \ _ \ _ name \ _ \ _ gespeichert. Auf der anderen Seite wurde \ _ \ _ main \ _ \ _ in \ _ \ _ name \ _ \ _ of name \ _is \ _ not \ _main.py selbst gespeichert.

Wie oben erwähnt, wird das importierte Skript, wenn es eine zusätzliche Beschreibung enthält, ohne Erlaubnis auf der importierenden Seite ausgeführt.

verwenden?

Auf der Site, auf die ich verwiesen habe, wurde eingeführt, ein Skript zu schreiben, um die Funktionsweise des Moduls als Verwendung von if \ _ \ _ name \ _ \ _ == \ _ \ _ main \ _ \ _: zu testen. Es war. Das war's.

Wie wird es anders als zum Testen verwendet?

Was machen Sie, wenn Sie ein Skript schreiben, das Sie nicht modularisieren möchten, wenn Sie die Meldung "Ich denke, diese Funktion kann an anderer Stelle verwendet werden, also denken Sie an Modularisierung ..." erhalten. Verschieben Sie zu diesem Zeitpunkt die Funktion in ein anderes Skript oder entscheiden Sie sich, eine if-Anweisung wie die oben beschriebene zu verwenden und im Skript zu belassen?

Recommended Posts

Python Hinweis: Modularisierung: __name__ == Verwendung von '__ main__'
So installieren Sie Python
So installieren Sie Python
[Neueste Version 2020.8] So installieren Sie Python
So erhalten Sie den Variablennamen selbst in Python
So installieren Sie Python [Windows]
python3: Verwendung der Flasche (2)
Python-Notizen, die Sie bald vergessen sollten
[Python] Verwendung von Liste 1
So aktualisieren Sie Pythons Tkinter auf 8.6
Wie benutzt man Python Argparse?
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
So führen Sie Notepad ++ Python aus
So ändern Sie die Python-Version
Wie man in Python entwickelt
[Python] Wie man Skalar beurteilt
[Python] Verwendung von input ()
Wie benutzt man Python Lambda?
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
Verwendung von Python-Bytes
[Hyperledger Iroha] Hinweise zur Verwendung des Python SDK
So installieren Sie Python mit Anaconda
[Python] Wie man MP3-Daten fFT
Python: So verwenden Sie Async mit
[Python] Verwendung der Pandas-Serie
So sammeln Sie Bilder in Python
Verwendung von Anfragen (Python Library)
Verwendung von SQLite in Python
[Einführung in Python] So analysieren Sie JSON
Hinweise zur Verwendung von Pywinauto
So erhalten Sie die Python-Version
Hinweise zur Verwendung von featuretools
Erste Schritte mit Python
[Python] Verwendung von Liste 3 Hinzugefügt
Wie man MySQL mit Python benutzt
Verwendung der Python-API von OpenPose
[Python] So tauschen Sie Array-Werte aus
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Python: Verwendung von pydub (Wiedergabe)
Verwendung von PubChem mit Python
So beschleunigen Sie Python-Berechnungen
So berechnen Sie das Datum mit Python
So greifen Sie über Python auf Wikipedia zu
Verwendung der Zip-Funktion von Python
[Nanonets] Wie poste ich Memo [Python]
Hinweise zum Schreiben von require.txt
Umgang mit Japanisch mit Python
[Python] Verwendung der Typetalk-API
So verpacken und verteilen Sie Python-Skripte
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Qiita (1) Wie schreibe ich einen Codenamen?
Wie man pydoc auf Python Interpreter liest