在python中将节点插入树

2024-05-01 21:57:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编写一个节点类来创建一个树结构。好像有 当我试图用“addChild”方法将子节点添加到根节点时出现了一些问题,因为子节点似乎在其子节点列表中有自己的子节点。我不知道为什么,所以任何帮助我都很感激。在

class node(object):
    def __init__(self, name, x, y, children = []):
        self.name = name
        self.children = children
        self.x = x
        self.y = y

    def addChild(self): 
        b=node('b', 5, 5)
        self.children.append(b)
        return

root=node('a',0.,0.)
print root.children 

root.addChild() 

print root.children
print root.children[0].children

产量:

^{pr2}$

而第二个“print”行应该返回一个空数组。在


Tags: 方法nameselfnode列表节点defroot
1条回答
网友
1楼 · 发布于 2024-05-01 21:57:31

默认参数值children = []__init__函数分配一个列表对象,然后在每次调用所有子函数时使用该函数。This is a common mistake。相反,在__init__函数本身中创建children

class node(object):
    def __init__(self, name, x, y, children=None):
        self.name = name
        self.children = [] if children is None else children
        self.x = x
        self.y = y
 # ...

相关问题 更多 >