Pythonのif_name__ == "__main__"どういう意味だ?

1783 ワード

Python初心者にとって、他人のコードを見ていると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されている場合、コードブロックが実行されないという非常に実用的な結論を得ることができます.