ホームページ >バックエンド開発 >Python チュートリアル >Python でモジュールをインポートするときに望ましくないコードの実行を防ぐにはどうすればよいですか?

Python でモジュールをインポートするときに望ましくないコードの実行を防ぐにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-13 18:34:10968ブラウズ

How Can I Prevent Unwanted Code Execution When Importing Modules in Python?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。