我正在编写一个树遍历方法。输出需要在一行上。但是,当方法完成时,我想插入一个换行符。有没有办法在函数内执行此操作,还是必须从外部调用?
现在我有:
def postorder_transversal(self):
if self.node == None:
return 0
for child in self.children:
child.postorder_transversal()
print self.node,
有关如何更改它的任何想法?
答案 0 :(得分:2)
您可以在函数内部执行此操作:
def postorder_transversal(self, add_newline=True):
if self.node == None:
return 0
for child in self.children:
child.postorder_transversal(add_newline=False)
print self.node,
if add_newline:
print
虽然在外面做它可能更干净。
答案 1 :(得分:2)
您可以将深度作为参数传递:
def postorder_transversal(self, depth=0):
if self.node == None:
return 0
for child in self.children:
child.postorder_transversal(depth=depth + 1)
print self.node,
if depth == 0:
print
使用print
功能:
from __future__ import print_function
def postorder_transversal(self, depth=0):
if self.node == None:
return 0
for child in self.children:
child.postorder_transversal(depth=depth + 1)
print(self.node, end='\n' * (depth == 0))
答案 2 :(得分:0)
此函数退出递归后,将打印一堆节点。在此之后,向stdout添加换行符。所以是的,在外面。