Python で循環インポート依存関係を解決するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-02 12:17:30
オリジナル
934 人が閲覧しました

How Can I Resolve Circular Import Dependencies in Python?

Python での循環インポート依存関係の克服

実行中にインポートが欠落しているために失敗する Python プログラムに遭遇した場合、根本原因は多くの場合次のとおりです。循環インポート依存関係にあります。この状況は、2 つ以上のモジュールが相互にインポートしようとするときに発生し、無限インポート ループにつながります。

たとえば、次のディレクトリ構造を考えてみましょう。

a/
    __init__.py
    b/
        __init__.py
        c/
            __init__.py
            c_file.py
        d/
            __init__.py
            d_file.py
ログイン後にコピー

このシナリオでは、パッケージの __init__.py ファイルは c パッケージをインポートします。ただし、c パッケージ内の c_file.py は a.b.d をインポートしようとします。これにより、インポート順序のその時点では b が存在しないため、プログラムは失敗します。

この問題を解決するには、インポート順序が完了するまでインポートを延期します。本当に必要とされています。たとえば、a/__init__.py:

<code class="python">def my_function():
    from a.b.c import Blah
    return Blah()</code>
ログイン後にコピー

このアプローチでは、インポートが必要になるまで遅延され、循環依存関係が解消されます。ただし、そのような依存関係は潜在的な設計上の欠陥を示している可能性があるため、パッケージの定義と使用法を徹底的に調査することが重要です。

以上がPython で循環インポート依存関係を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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