我正在寻找一种可能的树形打印实现,可以将树以用户友好的方式打印出来,而不是作为对象的实例。
我在网络上找到了这个解决方案:
来源: http://cbio.ufs.ac.za/live_docs/nbn_tut/trees.html
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__
方法的情况下获得相同的结果,因为我正在将其用于另一个目的。
print '\t' * level + repr(self.value)
而不是构建ret
值。这是101递归。 - Martijn Pieters