2020-12-11 if __name__ == "__main__" in Python

Python中的if__name__ == "__main__"

Pythonの初心者のif __name__ == "__main__"場合、他の人のコード見るとよく見られます。このとき、私は不平を言い始めます。「これは間違いなく見せかけです。この文は書きません。コードはまだうまく機能しません。

このコード行に最初に遭遇したとき、私は心の中でそう思いました!

トゥカオはトゥカオに戻ります、存在する理由があるに違いありません。ここで、このコードの意味を見てみましょう。この文は、Pythonモジュールをより高いレベルで理解するのに役立つためです。

例を通して理解する

モジュール(.pyファイル)を作成する限り、モジュールには組み込みの属性名が生成され、モジュール名の 値はモジュールの 適用方法によって異なります。つまり、モジュールを直接実行する__name__ == "__main__"場合;モジュールをインポートする場合 、モジュール名の値は通常、モジュールファイル名です。

たとえば、test1.pyを作成します。

def func():
    print('hello, world!')

if __name__ == "__main__":
    func()

モジュールでは、関数func()が最初にhello、world!を出力するように定義され、次に__name__ 等しいかどうかが 判断され__main__ます。等しい場合は印刷が行われ、そうでない場合は逆になります。モジュールを実行すると、結果は次のようになります。

hello, world!

説明__name__ はに等しい __main__

このとき、次のコードを入力します。

別のtest2.pyを作成します。

import test1

print('bye, world!')

モジュールで、最初にtest1をインポートし、次にprint bye、world!をテスト目的で実行し、モジュールを実行すると、結果は次のようになります。

bye, world!

操作結果はbye、world!のみであり、__name__ と等しくないことを 示してい__main__ます。

上記のtest1.pyとtest2.pyの2つのモジュールを通じて、非常に実用的な結論を導き出すことができ ます。モジュールを直接実行するとコードブロックが実行され、モジュールをインポートするとコードブロックは実行されません。

おすすめ

転載: blog.csdn.net/qingfengxd1/article/details/111031358