Python で循環インポート依存関係を解決する方法: よくある落とし穴

Mary-Kate Olsen
リリース: 2024-10-31 11:53:31
オリジナル
206 人が閲覧しました

How to Resolve Circular Import Dependency in Python: A Common Pitfall

循環インポート依存関係: よくある Python の落とし穴

循環インポート依存関係に遭遇すると、特にモジュールが相互接続されることが多い Python ではイライラすることがあります。このような例の 1 つは、パッケージの __init__.py が別のパッケージをインポートするときに、その 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 が存在しないというエラーが発生します。

問題の解決

解決策の 1 つは、インポートを延期することです。たとえば、/__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 までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!