在遞歸類函數中,我如何使用類成員作爲默認參數?python的遞歸類方法中的默認參數
我目前正在使用以下代碼段工作(python 3)。 高度是遞歸類函數。我想用於節點的默認參數是self._root。爲了做到這一點,我做了一些像下面的事情,但這是一個非常圓的方式,我必須定義另一個功能height_tree。有更直接的方法嗎?
# following code works #
class BTree:
def __init__(self, node=None):
self._root = node
def height_tree(self):
return self.height(self._root)
def height(self, node):
if node is not None:
height = max(self.height(node.get_left()), self.height(node.get_right())) + 1
else:
height = 0
return height
我想要做下面的事情,但它顯然不起作用!
def height(self, node=self._root)
# code from above follows
我卻無法使用分配根節點時節點是無自認爲是在遞歸結束條件
def height(self, node)
if node is None:
node = self._root
# this will conflict with logic in code block above#
是否有任何建議的方式來處理這種情況的一個備用把戲?
我會說使用一個輔助方法已經是最優雅的方式去了解它。如果只希望樹高度方法成爲公共API的一部分,您可以調用方法'height'和'_height'而不是'height_tree'和'height',但除了命名之外,我認爲這已經很好了。 – user2357112
@ user2357112:謝謝你的回覆。很有幫助。 – toing