• day_11 生成器


    1. 生成器本身是迭代器
        1.写迭代器的方式
          1.生成器函数
          2.生成器表达式
          3.各种推导式
        2.生成器函数
          函数内部有yield, yield返回->return
          yield把函数分段进行
          生成器可以使用for循环来获得里面的元素
          def func
              yield
          g=func()
          1.此时g并不是函数执行,而是获得一个生成器
           生成器本身是迭代器,所以再用_next_方法去里面一个一个的取.
           取到yield,当yield取完,没有yield的时候,会跑出StopIteration
           
          2.send()的用法和yield基本一致,就是send还有一个额外的功能,给上一个yield传值
            而且传值会发生在取值之前,send不能给最后一个yield传值,也不能在第一次执行生成器的时候使用
        
        3. 生成器表达式:基本上和推导式表达式一样,就是括号不一样而已
          1.形式g=(结果 for循环 if条件)
          2.特点:
            1.省内存
            2.惰性机制,只能手动一个一个的取
            3.只能向前
        4.各种推导式
          1.列表推导式[结果 for循环 if条件]
          2.字典推导式{key:value for循环 if条件}
          3.集合推导式{key for循环 if条件}
          
        5.生成器表达式和列表推导式的区别
         1.列表推导式一次性加载,比较耗内存,生成器表达式几乎不占内存,只有在使用的时候才分配         使用内存(惰性机制)
         2.结果不一样,列表推导式的结果是列表,生成器表达式的结果是生成器
         
        6.yield from
           把可迭代对象中每一项数据作为生成器结果返回
  • 相关阅读:
    自动化生成测试报告
    测试用例设计的常见几种方法
    python的七种数据类型
    python读写文件的几种方法
    测试工具之fiddler
    自动化前置用例和后置用例
    python的几种数据类型以及举例
    Selenium请求库
    第一篇帖子,上火了
    汉诺塔算法
  • 原文地址:https://www.cnblogs.com/tjp40922/p/9897332.html
Copyright © 2020-2023  润新知