Python モジュールでの循環依存関係の問題を回避するには?

DDD
リリース: 2024-10-19 16:32:30
オリジナル
725 人が閲覧しました

How to Avoid Circular Dependency Issues in Python Modules?

Python の循環依存関係

2 つのモジュールが互いの定義に依存する場合、循環依存関係が発生し、インポートの問題が発生することがあります。この場合、node.py と path.py という 2 つの Python ファイルがあります。最初に、path.py は、node.py から Node をインポートしました。ただし、パスを参照するノードに新しいメソッドが追加された後、循環依存関係が発生しました。

この問題を解決するには、いくつかのアプローチを検討できます。

1.条件付きインポート:

必要な関数にのみ path.py をインポートします。

# in node.py
from path import Path

class Node:
    # ...

# in path.py
def method_needs_node():
    from node import Node
    n = Node()
    # ...
ログイン後にコピー

2.遅延バインディング:

setattr() を使用して、実行時に不足しているクラス参照を割り当てます。

# in node.py
# Placeholder Path class
class Path:
    pass

# Importing path.py
import path

# Assigning the actual Path class after importing path.py
path.Path = load_node_module('path.Path')  # Implementation details omitted

class Node:
    # ...

# in path.py
class Path:
    # ...
ログイン後にコピー

以上がPython モジュールでの循環依存関係の問題を回避するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!