Да, это делает его правильным классом генератора
у много примеров функций генератора, но я хочу знать, как писать генераторы для классов. Допустим, я хотел написать серию Фибоначчи как класс.
class Fib:
def __init__(self):
self.a, self.b = 0, 1
def __next__(self):
yield self.a
self.a, self.b = self.b, self.a+self.b
f = Fib()
for i in range(3):
print(next(f))
Выход:
<generator object __next__ at 0x000000000A3E4F68>
<generator object __next__ at 0x000000000A3E4F68>
<generator object __next__ at 0x000000000A3E4F68>
Почему ценностьself.a
не печатать? Кроме того, как мне написатьunittest
для генераторов?