博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成器
阅读量:5827 次
发布时间:2019-06-18

本文共 669 字,大约阅读时间需要 2 分钟。

1. 生成器
        本质就是迭代器.
        一个一个的创建对象
        创建生成器的方式:
            1. 生成器函数
            2. 通过生成器表达式来获取生成器
            3. 类型转换(看不到)
    2. 生成器函数 (重点)
        生成器函数中包含 yield , 返回数据和return差不多.
        return会立即结束这个函数的执行
        yield 可以分段的执行一个函数
        生成器函数在执行的时候返回生成器. 而不是直接执行此函数
        能向下执行的两个条件:
            __next__(), 执行到下一个yield
            send(), 执行到下一个yield, 给上一个yield位置传值
        所有的生成器都是迭代器都可以直接使用for循环
        都可以使用list()函数来获取到生成器内所有的数据
        生成器中记录的是代码而不是函数的运行
        def func():
            print("我的天哪 ")
            yield "宝宝"
        gen = func() # 创建生成器.  此时运行会把生成器函数中的代码记录在内存
        当执行到__next__(), 运行此空间中的代码, 运行到yield结束.
        优点: 节省内存, 生成器本身就是代码. 几乎不占用内存
        特点: 惰性机制, 只能向前. 不能反复
    3. 各种推导式 (诡异)
        列表推导式  [结果 for循环 if]
        字典推导式 {结果(k:v) for循环 if}
        集合推导式 {结果(k) for循环 if}
 
    4. 生成器表达式 (重点)
        (结果 for循环 if)

转载于:https://www.cnblogs.com/liuzhiqiang666/p/10102793.html

你可能感兴趣的文章
python conv2d scipy卷积运算
查看>>
Apache Spark 章节1
查看>>
容器监控解决方案对比
查看>>
phpcms与discuz的ucenter整合
查看>>
UILabel 的属性(用法)方法
查看>>
sql Escape用法
查看>>
日期format
查看>>
Linux crontab定时执行任务
查看>>
JUnit编写单元测试代码注意点小结
查看>>
UVA 146 ID Codes
查看>>
Quartus使用Verilog设计计数器步骤全解
查看>>
mysql root密码重置
查看>>
33蛇形填数
查看>>
我为Net狂 ~ 社交平台系列小集合!
查看>>
Windows API一日一练(66)CreateWaitableTimer和SetWaitableTimer函数
查看>>
中秋节
查看>>
选择排序
查看>>
wpf datagrid 遍历行
查看>>
SQL Server 数据库的数据和日志空间信息
查看>>
Go语言的for循环
查看>>