zoukankan      html  css  js  c++  java
  • 小白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.只能往前

      

  • 相关阅读:
    Vue
    多线程
    多进程进阶
    CentOS7中安装MySQL
    socket
    回顾
    Hibernate学习一:Hebinate入门以及一些小问题
    struts2学习二:Tomcat的部署目录和访问路径问题
    struts2学习一:hello struts2及struts2环境配置中遇到的问题
    Scanner几个问题与正则简介
  • 原文地址:https://www.cnblogs.com/12345huangchun/p/9892429.html
Copyright © 2011-2022 走看看