小白Python路上第一个难点,也是一个比较重要的点(闭包,迭代器,生成器)

一、闭包

  闭包就是在内层函数中引用外层函数的变量

  

  作用:1.保护变量不受侵害

           2.让一个变量永驻内存

二、迭代器

  Iterator:迭代器,包含_iter_()和_next_()函数

  Iterable:可迭代的,只包含_iter_()

  用while来演示for循环的实际流程

  

  从迭代器中获取数据的唯一方法:_next_()

  三个特征:1.省内存

       2.惰性机制,不访问_next_(),就不会有值

       3.只能往前,不能后退

三、生成器

  生成器本质就是迭代器,有两种方式写生成器:1.生成器函数

                       2.生成器表达式

  生成器函数:生成器函数内部有yield,yield相当于return,返回值

        yield可以把函数分段执行

        生成器函数被调用的时候,返回生成器

  

  生成器的调用和迭代器基本一样,通过_next_()开始执行生成器,执行到yield,调用一次_next_()就执行一次到下一个yield,直到没有yield,抛出StopIteration。

  生成器还可以用send()调用,并给上一个yield传值

  特点:1.省内存

     2.惰性机制,不访问_next_()就没值

     3.只能往前

  

原文地址:https://www.cnblogs.com/12345huangchun/p/9892429.html