Python 生成器与迭代器
2013-09-19 23:34
295 查看
迭代器是一种可以重复做某种事情的对象,python中实现了__iter__方法的对象都是可迭代的,实现了next()方法的对象是迭代器。
简单地说,实现了__iter__和next是迭代器的基本两个函数,所有的迭代器都应该具备这两个方法。
如下为一个迭代器
生成器则是一个函数,他是由yield语句来触发的,程序运行完yield语句时会停止,并保存状态(像一个中断处理),返回一个值,等待下一次激活。
这个例子与上一个完成同样的效果。
生成器与迭代器都是可以迭代,并且带向迭代。
简单地说,实现了__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
这个例子与上一个完成同样的效果。
生成器与迭代器都是可以迭代,并且带向迭代。
相关文章推荐
- Python 迭代器和生成器
- python核心高级学习总结8------动态性、__slots__、生成器、迭代器、装饰、闭包
- Python生成器与迭代器
- python成长日迹--生成器&迭代器
- Python 三目运算,列表解析,装饰器,迭代器和生成器
- python中迭代器和生成器。
- Python迭代器和生成器
- python基础之迭代器和生成器
- python: 切片,迭代,列表生成器,生成器,迭代器
- python-cookbook学习笔记八 迭代器与生成器一
- Python迭代器与生成器
- python迭代器与生成器与上下文管理器
- Py修行路 python基础 (十一)迭代器 与 生成器
- Python 生成器和迭代器
- Python生成器、迭代器、装饰器
- python 迭代器 生成器
- Python菜鸟之路:Python基础-生成器和迭代器、递归
- 完全理解 Python 迭代对象、迭代器、生成器
- Python学习之迭代对象、迭代器、生成器
- 零基础学python-19.8 生成器表达式:当迭代器遇上列表解析