我有以下设置:
# 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)创建自身的实例(例如,用于模仿父子关系)。
答案 0 :(得分:0)
像这样:
# generator.py
class Generator(object):
@staticmethod
def generate(self, node):
from node import 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)
答案 1 :(得分:0)
generator.py
def generate(n):
for a in range(3):
yield n()
node.py
from generator import generate
class Node:
def __init__(self):
self.id_ = id(self)
for n in generate(Node):
print(n.id_)