Да, это делает его правильным классом генератора

у много примеров функций генератора, но я хочу знать, как писать генераторы для классов. Допустим, я хотел написать серию Фибоначчи как класс.

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 для генераторов?

Ответы на вопрос(4)

Ваш ответ на вопрос