我需要Python中的树数据结构从网站复制它,并遇到一些非常奇怪的问题。Python 3:获取列表__repr__时超出最大递归深度
如果你创建了有两个arguements它的工作对象,如果你只使用一个自变量,它在打印失败,
RecursionError: maximum recursion depth exceeded while getting the repr of a list
我理解错误,但目前尚不清楚在哪里以及为什么会发生。代码也应该使用默认参数工作。我知道这是可变的。
class node(object):
def __init__(self, value, children = []):
self.value = value
self.children = children
def __repr__(self, level=0):
ret = "\t"*level+repr(self.value)+"\n"
for child in self.children:
ret += child.__repr__(level+1)
return ret
def add(self, value):
self.children.append(node(value))
#tree = node([1,4,3], [node([2,5,3])]) <-- works
tree = node([1,4,3]) # <-- fails
tree.add([3,4,3])
tree.add([4,4,3])
print(tree)
尝试将'self.children = children'更改为'self.children = children [:]' – thefourtheye