def getCategoriesAsList(element):
try:
print "I am {0}".format(element.getNodeID())
if element.hasChilds():
for value in element.getChildren().values():
print "{0} added to list".format(value.getNodeID())
return [value]+getCategoriesAsList(value)
else:
print "{0} added to list".format(element.getNodeID())
return [element]
except Exception as err:
print err
おはようございます! 私はPythonで私のツリーを反復しようとしています。私はツリーをいくつかの変換を伴う要素のリストに変換したいと思っています。 問題は、要素が子でない場合に関数が再帰呼び出しを実行しないことです。私はいくつかのデバッグ情報を作成しますが、私はこの動作を理解できません!再帰呼び出しがブロックされました
if if要素.hasChilds(): '条件は' else'にジャンプし、子がない場合に要素を返します。そうじゃない? –
入力と現在および予想される出力の例を挙げてください。 –
My Treeには7つのレベルがあり、各レベルの1つの要素だけがリストに追加され、他のノードは実行されません。 「要素」ノードに子要素がある場合は、その要素を反復処理し、子要素をリストに追加して、次のレベルに下がり、子要素が子要素になるまで子要素をチェックします。それがリストに追加され、ループの次の子アイテムをチェックするために上位レベルに達した場合 –