python装饰器,生成器,迭代器

装饰器

  • 运用了闭包的原理
    通过一个@符号将装饰器置于其要装饰的方法的上方
    可以多个装饰器装饰同一个方法
  • 装饰器可以用可变参数来进行不确定参数类型和数量的方法的装饰
  • 多个装饰器同时装饰时的顺序我是有点乱
  • 装饰器可一次定义多次使用

生成器与迭代器:

生成器

  • 生成器是一种特殊的迭代器
  • 生成器可用于替换循环生成容器类内容对象的一个函数中的循环部分,使其成为懒加载函数
  • 最简单的生成器用法:
    g =(x for x in range(,))
    可以通过for i in g的循环对生成器中每一个对象进行遍历
    也可以用g.next()方法,每次只返回一个生成器对象
  • 生成器在函数中实现:
def gen():
  x = 0
  while(True):
    yield x
    x = x + 1
gen1 = gen()

这里的x就变成了一个可迭代的生成器对象
对这里的x进行迭代可以分别通过python的for循环或者next(gen1)进行
其中,for循环输出所有生成对象,而next()方法一次只输出一个生成对象


迭代器

实现了iter方法和next方法的类被称为迭代器
这一点其实和java是比较类似的

  • 生成器一定是一个迭代器,但是迭代器未必是生成器
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容