Назначен для создания класса связанного списка с нуля с использованием генератора для итерации по списку, но у меня возникла проблема при отладке этой проблемы:
class LinkedList:
def __init__(self, data = None):
self.node = Node(data)
self.first = self.node
self.last = self.node
self.n = 1
def append(self, data = None):
new = Node(data)
self.last.next = new
self.last = new
self.n += 1
def __iter__(self):
self.index = self.first
return self.generator()
def generator(self):
for i in range(0, self.n):
yield self.index
self.index = self.index.next
Один из тестов, которые проходит текущий генераторis:
for n in a:
print n
# which should and does output
0
1
2
Однако в этом случае он не может вывести правильные значения
for n in a:
if n == 2:
break
else:
print n
# Outputs 0 1 2, instead of:
0
1
Я думаю, что мое понимание генераторов отсутствует, и я хотел бы получить любую помощь, которую вам, ребята, придетсяпредложение!