簡體   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