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

Python: 迭代器与生成器小结

时间:2016-09-07 14:42:15      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

迭代器与生成器的区别:

1. 迭代器由Class对象创建. 生成器由包含yield表达的Function对象或者Generator Expression创建.

2. 迭代器的原理:

    (1)由Iterable.__iter__()返回Iterator.

    (2)由Iterator.__next__()返回迭代值, 直到StopIteration.

    一般迭代器同时实现__iter__()与__next__(), 在__iter__()返回self, 在__next__()返回迭代值,直到StopIteration

    生成器原理:

    (1)生成器都有next(), send(), close(), throw()

    (2)调用next()/send(V)执行到下一个yield表达式,并返回yield表达式结果. 如果是send(V)将用V代替yield表达式的值往下执行, next()等价send(None)

    (3)生成器不允许return任何值.

Python: 迭代器与生成器小结

标签:

原文地址:http://www.cnblogs.com/zolo/p/5849284.html

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