我看到了很多生成器函数的例子,但是我想知道如何为类编写生成器。让我们说,我想写斐波那契数列作为一个类。
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
?