我试图理解迭代器和迭代。我有下面的python程序。
class fib():
def __init__(self):
self.prev = 0
self.curr = 1
def __iter__(self):
return self
def __next__(self):
value = self.curr
self.curr += self.prev
self.prev = value
return value
f = fib()
print(type(f))
z = iter(f)
item = z.next()
print(z)
item = z.next()
print(z)
我收到以下错误
item = z.next()
AttributeError: 'fib' object has no attribute 'next'
1
我做错了什么,为什么我得到这个错误。根据我的理解,calss fib()是一个iterable
因此应该返回一个iterator.Calling next()on iterator应该返回项目。