码迷,mamicode.com
首页 > 其他好文 > 详细

迭代器与装饰器

时间:2017-11-04 11:31:03      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:生成器   cti   修改   func   理解   next   错误   iterable   可迭代对象   

e)    迭代器
Iterable(可迭代对象)  和  Iterator(迭代器) 主要区别是 :
凡是可以用 for 循环的 都是  Iterable(可迭代对象)  凡是需要通过next()函数获得值的可迭代对象都是 Iterator(迭代器)。

(所以生成器可以 被next()函数调用并不断返回下一个值的对象称为迭代器 ) (可以简单理解为生成器 就是 迭代器的可迭代对象)
# 一是集合数据类型,如list、tuple、dict、set、str等;
# 二是generator,包括生成器和带yield的generator function。

凡是可作用于for循环的对象都是Iterable类型;

凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;

被next()函数调用并不断返回下一个值(直到没有数据时抛出StopIteration错误)的对象称为迭代器,即Iterator

装饰器
什么是装饰器(Decorator)?

  本质上:是一个返回函数的高阶函数。

生产上,什么时候用装饰器?

  当我们想要给一个函数func()增加某些功能,但又不希望修改func()函数的源代码的时候就需要用装饰器了。(在代码运行期间动态增加功能)

迭代器与装饰器

标签:生成器   cti   修改   func   理解   next   错误   iterable   可迭代对象   

原文地址:http://www.cnblogs.com/song-liang/p/7781171.html

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