首页 > 编程语言 > 详细

python迭代器

时间:2016-12-10 22:46:07      阅读:229      评论:0      收藏:0      [点我收藏+]
 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)

 

python迭代器

原文:http://www.cnblogs.com/lichaoyue/p/6158214.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!