я не совсем понимаю итераторы 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, мне просто нужно получить доступ к каждому дочернему элементу один раз