ホームページ > バックエンド開発 > Python チュートリアル > Python で `if __name__ == '__main__':` は何をするのか、またそれがなぜ重要なのか?

Python で `if __name__ == '__main__':` は何をするのか、またそれがなぜ重要なのか?

Mary-Kate Olsen
リリース: 2024-12-24 19:30:18
オリジナル
920 人が閲覧しました

What Does `if __name__ ==

__name__ == "__main__": の場合はどうなりますか? if ステートメントを含める理由は何ですか?

このコードは、モジュールが (モジュールとしてインポートされるのではなく) メイン プログラムとして実行されているかどうかをチェックします。メイン プログラムとして実行されている場合は、if ステートメント内のコードが実行されます。

このステートメントを含める理由

  1. 意図しないスクリプト実行から保護します:

    • なしこのチェックでは、スクリプトをインポートすると (たとえば、import my_script)、関数/クラスのみをインポートしたかった場合でも、スクリプトのコードが誤って実行されてしまいます。これにより、競合や予期しない動作が発生する可能性があります。
  2. ピックリングに関する問題を防止します。

    • で定義されたクラスをピックリングします。 script はスクリプトの実行をトリガーし、スクリプトを unpickle 環境にインポートします。これにより、コマンドライン引数やその他のスクリプト固有の依存関係に関する問題が発生する可能性があります。

どのように機能しますか?

  • __name__: Python がスクリプトを実行すると、 name 変数を "__main__" に設定します。
  • モジュールのインポート: メイン以外のモジュールをインポートすると、Python はモジュールの名前をそのモジュールに割り当てます。 __name__.

例:

if __name__ == "__main__":
    print("This code will run when the script is executed.")

# This code will not run when the script is imported.
print("This code will only run when the script is imported.")
ログイン後にコピー

これにより、スクリプトが直接実行された場合にのみコードの最初のブロックが実行されるようになります (例: python my_script. py)、コードの 2 番目のブロックは、スクリプトが別のスクリプトにインポートされる場合にのみ実行されます (例: import my_script).

高度な考慮事項:

  • 複数の name ガード: 通常、複数のガードを使用することはお勧めしません。 name は単一のファイルをチェックインします。これにより予期せぬ問題が発生する可能性があります。
  • カスタム name 値: if ステートメントの外側で name を手動で設定して、さまざまな実行シナリオをテストしたり、より詳細に制御したりできます。スクリプトの実行。

以上がPython で `if __name__ == '__main__':` は何をするのか、またそれがなぜ重要なのか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート