我正在寻找一个可能的树打印实现,它以用户友好的方式打印树,而不是作为对象的实例。
我在网上看到了这个解决方案: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
此代码按以下方式打印树:'grandmother'
'daughter'
'granddaughter'
'grandson'
'son'
'granddaughter'
'grandson'
是否有可能得到相同的结果,但不更改__repr__方法,因为我将其用于另一个目的。
编辑:
不修改__repr__和__str__的解决方案def other_name(self, level=0):
print '\t' * level + repr(self.value)
for child in self.children:
child.other_name(level+1)