生成器,迭代器,装饰器

要点导航

 生成器

  • 在Python中, 一边循环一边计算的机制, 称为生成器: generator 创建生成器: G = ( x*2 for x in range(5)) 可以通过 next(生成器) 函数获得生成器的下一个返回值 没有更多的元素时, 抛出 StopIteration 的异常 生成器也可以使for 循环,因为生成器也是可迭代对象

迭代器

概念: 拥有__iter__方法和__next__方法的对象就是迭代器

    • 迭代
      • 迭代是访问集合元素的一种方式,可以将某个数据集内的数据“一个挨着一个的取出来”,就叫做迭代
    • 可迭代协议
      • 协议就是互相规定好的。可迭代协议的定义非常简单,就是内部实现了 __iter__方法。
  • 迭代器协议
    • 迭代器协议:必须拥有__iter__方法和__next__方法
    • 可以通过dir(对象)查看是否实现了__iter__,__next__等方法来判断对象是否为迭代器
    • 也可以使用 isinstance(Iterator)来判断

for循环的本质

  • 通过__iter__()获取该对象的一个迭代器对象
  • 通过__next__()函数,依次获取下一个元素
posted @ 2019-05-31 09:08  爱学习的小猫咪  阅读(106)  评论(0编辑  收藏  举报