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)
我正在尝试优化我的迷宫生成算法。目前我有一个节点集列表和一个节点列表。节点存储为 (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)