Python 递归对象创建

Python Recursive Object Creation

我正在尝试优化我的迷宫生成算法。目前我有一个节点集列表和一个节点列表。节点存储为 (x,y) 元组。一开始每个集合只包含一个节点。我在两个节点之间选择一个随机边界并检查它们是否在同一组中。这就是问题所在 - 我必须遍历集合列表并查看每个项目,直到找到包含给定 node/nodes 的集合。我希望能够作为节点 class 的 属性 访问集,但我也希望我的集包含 "Node" class 和 运行 的对象进入这个:

class Node:

   def __init__(self, xy:tuple, group:set):
       self.xy = xy
       self.group = group

node = Node((10, 10),{Node(10, 10),{Node(10, 10),{... and so on }}})

我如何创建这样的关系,以便我可以访问集作为 node.group 并同时访问 属性 会在没有递归的情况下与其他 Node 对象一起指向所需的集合吗?

这是你想要的吗?

class Node:

    def __init__(self, xy:tuple):
        self.xy = xy
        self.group = None

    def set_group(self, group:set):
        if  self.group is not None:
            self.group.remove(self)
        group.add(self)
        self.group = group

node1 = Node((1,1))
node2 = Node((2,2))

group1 = set()
group2 = set()

node1.set_group(group1)
node2.set_group(group2)