Python生成器遍历树
我不熟悉Python生成器。这里我想做一个树的后序遍历。我发现其他人的代码如下。我不太明白,相反,我只想把它写成后者。有人能告诉我为什么我错了吗Python生成器遍历树,python,Python,我不熟悉Python生成器。这里我想做一个树的后序遍历。我发现其他人的代码如下。我不太明白,相反,我只想把它写成后者。有人能告诉我为什么我错了吗 def _loopallchildren(parent): for child in parent.children: if child.children: for subchild in _loopallchildren(child): yield subchild
def _loopallchildren(parent):
for child in parent.children:
if child.children:
for subchild in _loopallchildren(child):
yield subchild
yield child
错误代码:
def _loopallchildren(parent):
for child in parent.children:
if child.children:
_loopallchildren(child)
yield child
出于同样的原因,仅仅从外部调用_loopallchildrenroot而不使用它也没有任何作用。您必须迭代生成器才能使用它 用Python≥ 3.3您可以使用_loopallchildrenchild的收益率