はじめに
こんにちは!!B4の黒田です!
今回は,if name == 'main':に関して説明します.
推奨環境
OS: ubuntu22.04
簡単に説明
if name == 'main':は,
ファイルを読み込んだ際に関数などの実行を制御してくれるものです.
(あるpythonスクリプトが他のpythonスクリプトのモジュールとしてインポートされた場合と,あるpythonスクリプトが直接実行された場合を区別するために使用されます.)
例:以下にsample.pyがあるとします.
sample.py
def hello():
print("Hello")
hello()
sample.pyの実行結果⇐以下のコマンド実行
$python3 sample.py
Hello
上記のhello()
関数を他のpythonスクリプトで使用したいとき,その関数をimportします.
例:以下にexample.pyがあるとします.
example.py
from sample import hello
hello()
example.pyの実行結果⇐以下のコマンド実行
$python3 example.py
Hello
Hello
Helloが2回出力されました.
これは,ファイルをimportすると読み込み先のファイルに記載されている関数が実行されるからです.
これを制御するために,if name == 'main':
を使用します.
例:先程のsample.pyを以下のように修正します.
sample.py
def hello():
print("Hello")
if __name__ == '__main__':
hello()
上記を修正することで,sample.pyをimportした際でもhello()関数は実行されません.
example.pyの実行結果⇐以下のコマンド実行
$python3 example.py
Hello
以上です.