Python のモジュール実行の謎
Python プログラミングでは、モジュールをインポートするときに予期しない動作が発生する可能性があります。 main.py によるユーザー対話モードと、batch.py によるバッチ モードという 2 つの操作モードを提供するプログラムを考えてみましょう。
問題は、batch.py が main.py をインポートするが、誤ってその実行をトリガーする場合に発生します。コード。これは、Python が class や def などのキーワードを宣言ではなく実行可能なステートメントとして扱うために発生します。
解決策: 条件付き実行
この望ましくない実行を防ぐために、Python は既知の解決策を提供しています。条件付き実行として。これには、モジュールがインポートされずに直接呼び出された場合にのみ実行されるコードのカプセル化が含まれます。
次のスニペットは、このアプローチを示しています。
# Code that can be executed both when called directly and imported ... # Code to be executed only when called directly def main(): ... # Conditional execution to only run 'main' when the module is called directly if __name__ == "__main__": main()
このパターンでは、コードの外部に配置されたコードはすべて、 if __name__ == "__main__" ブロックは、モジュールがインポートされたか直接呼び出されたかに関係なく実行されます。このブロック内のコードは、モジュールが直接呼び出された場合にのみ実行され、インポート中の不要な実行を効果的に防止します。
以上がPython でモジュールをインポートするときに望ましくないコードの実行を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。