标签:span pytho 异常 stop print int python class elf
1 1 class Fibs: 2 2 def __init__(self): 3 3 self.a=0 4 4 self.b=1 5 5 def next(self): 6 6 self.a,self.b=selfb,self.a+self.b 7 7 return self.a 8 8 def __iter__(self): 9 9 return self 10 10 fibs=Fibs() 11 11 for f in fibs: #fibs是迭代器中生成的一个列表 12 12 if f<1000: #打印出斐波那契数列,大于1000就终止打印 13 13 print f 14 14 else: 15 15 break
1.迭代器协议是指:对象需要提供next方法,它要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代
2.迭代器返回的是自身,一直重复next()的方法
3.知乎上一个人说的很好,非要类比的话,赌场发牌的荷官算是一个比较接近的例子。本来你需要自己去处理一堆牌(一个 collection),现在你有了这个对象,只要不断问他要“下一张”,他要是有自然会给你,没有就结束(StopIteration)
标签:span pytho 异常 stop print int python class elf
原文地址:http://www.cnblogs.com/lichaoyue/p/6158214.html