0
我有以下設置:如何重構此以避免循環依賴?
# generator.py
from node import Node
class Generator(object):
@staticmethod
def generate(self, node):
return [Node(), Node(), Node()]
# node.py
from generator import Generator
class Node(object):
def generate_child_nodes(self):
self.child_nodes = Generator.generate(self)
這種過度簡化的設置導致循環依賴的問題。
我一般都想使用不同的模塊(在這種情況下爲generator.py)創建類的實例(例如模仿父子關係)的能力。
移動進口到函數中的一個,或之後類定義。 – davidism
醜陋而快速的方法是將其中一個導入作爲本地導入(在類或方法中)。 – DeepSpace
替代方法:讓'generate()'基於已經傳入的節點實例動態地實例化相應的節點類?例如。 'return [node .__ class __(),node .__ class __(),node .__ class __()]' –