[英]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.