ホームページ  >  記事  >  バックエンド開発  >  2 つの依存クラスを持つ Python で循環依存関係を解決するにはどうすればよいですか?

2 つの依存クラスを持つ Python で循環依存関係を解決するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-19 16:33:01948ブラウズ

How to Resolve Circular Dependencies in Python with Two Dependent Classes?

2 つのクラスを使用した Python の循環依存関係

Python では、2 つのモジュールが相互にインポートするときに循環依存関係の問題が発生することがあります。たとえば、node クラスと Path クラスをそれぞれ定義する、node.py と path.py という 2 つのファイルがあるとします。

元々、path.py は from node.py import * を使用して Node をインポートしました。ただし、Path を利用する新しいメソッドを Node に追加した後、path.py のインポート中に例外が発生し、Node が未定義であることを示します。

この循環依存関係を解決するには、次のアプローチを検討してください。

1 つのオプションは、必要な他のモジュール (node.py) の特定の関数/メソッド内にモジュール (この場合は path.py) を 1 つだけインポートすることです。このアプローチは、限られた数の関数でのみ依存関係が必要な場合にうまく機能します。

<code class="python"># in node.py
from path import Path

class Node:
    ...

# in path.py
class Path:
    def method_needs_node():
        from node import Node
        n = Node()
        ...</code>

method_needs_node() メソッド内でのみ node.py をインポートすることで、循環依存の問題を回避できます。

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

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