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