迭代器与装饰器
Posted song-liang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迭代器与装饰器相关的知识,希望对你有一定的参考价值。
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()函数的源代码的时候就需要用装饰器了。(在代码运行期间动态增加功能)
以上是关于迭代器与装饰器的主要内容,如果未能解决你的问题,请参考以下文章