繁体   English   中英

Python:递归函数后打印新行

[英]Python: Printing a new line after a recursive function

我正在写一个遍历树的方法。 输出必须在一行上。 但是,当方法完成后,我想插入一个换行符。 在函数中有什么方法可以执行此操作,还是必须从外部调用它?

现在我有:

def postorder_transversal(self):
    if self.node == None:
        return 0
    for child in self.children:
        child.postorder_transversal()
    print self.node,

关于如何更改它的任何想法?

您可以在函数内部执行以下操作:

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

虽然外面做可能更清洁。

您可以将depth作为参数传递:

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))

此函数退出递归后,它将打印一堆节点。 之后,在stdout中添加换行符。 是的,外面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM