首页 > 其他 > 详细

迭代器与装饰器

时间:2017-11-04 10:41:12      阅读:257      评论:0      收藏:0      [点我收藏+]
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()函数的源代码的时候就需要用装饰器了。(在代码运行期间动态增加功能)

迭代器与装饰器

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!