self.children = children or []

def __str__(self):
    return self.title

def __iter__(self):
    yield self
for child in self.children:
    for node in child:
        yield node
Реализация итератора дерева в глубину в Python