LoginSignup
0
4

pythonのif __name__ == '__main__':に関して

Last updated at Posted at 2023-12-01

はじめに

こんにちは!!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

以上です.

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4