我正在尝试创建一个具有递归'printAll'方法的树。
我的代码是:
class Node(object):
def __init__(self, children=[], tag=None):
self.children = children
self.tag = tag
def appendChild(self, child):
self.children.append(child)
def getChildren(self):
return self.children
def printAll(self):
print self.getChildren()
for child in self.children:
child.printAll()
当我运行它时,我得到了这个:“在调用Python对象时超出了最大递归深度”。
我猜这与调用子的printAll()方法时将顶级作用域传递给子进程有关,导致无限循环。非常感谢任何帮助。
答案 0 :(得分:1)
尝试更改默认children
:
class Node(object):
def __init__(self, children=None tag=None):
self.children = children if children is not None else []
self.tag = tag
def appendChild(self, child):
self.children.append(child)
def getChildren(self):
return self.children
def printAll(self):
print self.getChildren()
for child in self.children:
child.printAll()
的案例