__name__ ガードはユーザーを保護する一般的な Python のイディオムです意図しないときに誤ってスクリプトを呼び出すことがなくなります。このガードを省略すると、スクリプトを別のスクリプトにインポートするか、pickle としてシリアル化する場合に、予期しない動作が発生する可能性があります。
インタプリタが読み取ったときソース ファイルの場合、次の 2 つのことを行います:
モジュールをメイン プログラムとして実行する場合、__name__ は "__main__" に設定されます。それ以外の場合、モジュールをインポートすると、__name__ がモジュールの名前に設定されます。
__name__ ガードは次のように機能します:
If __name__ == '__main__' (mainプログラム):
If __name__ != '__main__' (インポートされたモジュール):
次のコードを調べてみましょう:
print("before import") import math print("before function_a") def function_a(): print("Function A") print("before function_b") def function_b(): print("Function B {}".format(math.sqrt(100))) print("before __name__ guard") if __name__ == '__main__': function_a() function_b() print("after __name__ guard")
このイディオムを使用すると、独立したモジュールとしても使用できる .py ファイルを作成できます。そしてメインプログラムとして実行されるスクリプトとして。その有用性の例:
要約すると、if __name__ == '__main__' ガードは省略できますが、汎用性、エラー保護、およびコードのインポートまたはシリアル化時の予期しない動作を防ぐために推奨されます。
以上がPython の `if __name__ == '__main__':` ステートメントは何をするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。