Я хочу сгенерировать все пути от каждого листа до корня в дереве. Я бы хотел сделать это с генераторами, чтобы сэкономить память (дерево может быть большим). Вот мой код:
def paths(self, acc=[]):
if self.is_leaf():
yield [self.node]+acc
for child in self.children:
child.paths([self.node]+acc)
Но он не работает. Зачем? Вызванный из корневого каталога, он просматривает дерево сверху вниз, собирая узлы в "acc". "acc" должен быть возвращен в каждом листе ...
is_leaf () истинно, если self.children пуст.