Pythonのif_name__ == "__main__"どういう意味だ?
1783 ワード
Python初心者にとって、他人のコードを見ていると
私がこのコードに出会ったばかりの頃、心の中でもそう思っていました.
ツッコミはツッコミに帰し、必然的に存在する道理がある.このコードがどういう意味なのか見てみましょう.この言葉はPythonモジュールの前の階層を理解するのに役立つからです.
例を通して理解する
モジュール(.pyファイル)を作成すると、モジュールの名前の値は、モジュールをどのように適用するかによって異なります.モジュールを直接実行すると
たとえばtest 1を作成します.py:
モジュールでは、まず関数func()を定義し、hello,worldを印刷します!次に、
説明
この場合、コードを入力します.
test 2をもう1つ作成します.py:
モジュールでは、まずimport test 1、それからbye、worldを印刷します!テスト用にモジュールを実行した結果、次のようになりました.
実行結果はbye,worldのみ!,説明
上を通るtest 1.pyとtest 2.pyの2つのモジュールは、モジュールが直接実行されている場合、コードブロックが実行され、モジュールがimportされている場合、コードブロックが実行されないという非常に実用的な結論を得ることができます.
if __name__ == "__main__"
をよく見かけますが、「絶対また無理やりだよ.私がこのコードに出会ったばかりの頃、心の中でもそう思っていました.
ツッコミはツッコミに帰し、必然的に存在する道理がある.このコードがどういう意味なのか見てみましょう.この言葉はPythonモジュールの前の階層を理解するのに役立つからです.
例を通して理解する
モジュール(.pyファイル)を作成すると、モジュールの名前の値は、モジュールをどのように適用するかによって異なります.モジュールを直接実行すると
__name__ == "__main__"
になりますモジュールをimportする場合、モジュールnameの値は通常モジュールファイル名です.たとえばtest 1を作成します.py:
def func():
print('hello, world!')
if __name__ == "__main__":
func()
モジュールでは、まず関数func()を定義し、hello,worldを印刷します!次に、
__name__
が__main__
に等しいかどうかを判断し、等しい場合、印刷がある場合、逆の場合、モジュールを実行し、結果は次のようになります.hello, world!
説明
__name__
は__main__
に等しい.この場合、コードを入力します.
test 2をもう1つ作成します.py:
import test1
print('bye, world!')
モジュールでは、まずimport test 1、それからbye、worldを印刷します!テスト用にモジュールを実行した結果、次のようになりました.
bye, world!
実行結果はbye,worldのみ!,説明
__name__
は__main__
に等しくない.上を通るtest 1.pyとtest 2.pyの2つのモジュールは、モジュールが直接実行されている場合、コードブロックが実行され、モジュールがimportされている場合、コードブロックが実行されないという非常に実用的な結論を得ることができます.