码迷,mamicode.com
首页 > 编程语言 > 详细

python迭代器

时间:2016-12-10 22:47:04      阅读:208      评论:0      收藏:0      [点我收藏+]

标签: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)

 

python迭代器

标签:span   pytho   异常   stop   print   int   python   class   elf   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!