итератор python через дерево со списком дочерних элементов

я не совсем понимаю итераторы python, У меня есть объект со списком дочерних элементов, и я хочу перебрать эту структуру. Я хочу добиться того же поведения, что и функция printall, но с итератором.

    class t:
            def __init__(self, i):
                    self.l = []
                    self.a = 0
                    for ii in range(i):
                            self.a = ii
                            self.l.append(t(i-1))

            def __iter__(self):
                    return self

            def next(self):
                    for i in self.l:
                            yield i.__iter__()
                    yield self

            def printall(self):
                    for i in self.l:
                            i.printall()
                    print self.a

надеюсь, что достаточно информации, спасибо

edit:

я просто хочу иметь возможность перебирать все листы дерева и сделайте что-нибудь с объектом, например, когда у меня есть экземпляр

    bla = t(3) 

, я хочу иметь возможность пройти через каждый узел с помощью

    for x in bla:
            print x.a

. я хочу иметь возможность что-то с каждым x, мне просто нужно получить доступ к каждому дочернему элементу один раз

11
задан Xtroce 2 August 2011 в 16:16
поделиться