次の関数の再帰を解消したいのですが、入力データによっては再帰の深さを超えるエラーが発生するためです。 再帰の深さを増やすことは、長期的には解決策ではありません。
def foo(x):
for element in x.elements:
element.depth = x.depth + 1
self.foo(element)
元のリスト構造を保持する必要があるため、リストの平坦化は適用できません。
このソリューションでは、再帰を含むジェネレーターを使用しています。それが発電機であるという事実は違いがありますか?
最後に、スタック アプローチがあります。ここでは、割り当てられる値の相互依存性のため、これが 100% 適用可能かどうかはわかりません。
洗練された (Pythonic) 非再帰的なソリューションは何でしょうか?