您的位置:首页 > 编程语言 > Python开发

Python 生成器与迭代器

2013-09-19 23:34 295 查看
迭代器是一种可以重复做某种事情的对象,python中实现了__iter__方法的对象都是可迭代的,实现了next()方法的对象是迭代器。

简单地说,实现了__iter__和next是迭代器的基本两个函数,所有的迭代器都应该具备这两个方法。

如下为一个迭代器

class Fib:
def __init__(self):
self.a,self.b = 0,1
def next(self):
self.a,self.b = self.b,self.a+self.b
return self.a
def __iter__(self):
return self
fibs = Fib()
for i in fibs:
  if i < 1000:
    print i


生成器则是一个函数,他是由yield语句来触发的,程序运行完yield语句时会停止,并保存状态(像一个中断处理),返回一个值,等待下一次激活。

def fib():
a,b = 0,1
while 1:
a,b = b,a+b
yield a
for f in fib():
if f < 1000:
print f
else:
break


这个例子与上一个完成同样的效果。

生成器与迭代器都是可以迭代,并且带向迭代。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: