__metaclass__ = type
class Fibs:
def __init__(self):
self.a = 0
self.b = 1
def next(self):
self.a, self.b = self.b, self.a + self.b
return self.a
def __iter__(self):
return self
fibs = Fibs()
for f in fibs:
if f < 1000:
print f,
else:
print f, 'VOER'
break
__iter__方法返回一个迭代器(iteratior), 所谓的迭代器就是具有next方法的对象,在调用next方法时,迭代器会返回它的下一个值。
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 OVER