• 生成器


    生成器

    1.什么是生成器:

    生成的工具,本质是一个自定义的迭代器

    2.如何实现生成器:

    但凡在函数内部定义了yield,调用函数时,函数体代码不会执行,会返回一个结果,该结果就是生成器。

    yield:

    用于返回值,但不同于return,函数一旦遇到return就结束,而yield可以保存函数运行状态挂起函数,用来返回多个值。

    定义一个迭代器对象:
    def func():
       print('开始准备下单')
       print(‘1--火鸡蛋’)
       yield'火机蛋1'
       print('2--火机蛋2')
       yield'火机蛋2'
       print(’3--火机蛋3')
       yield'火机蛋3'
       print'取最后一个蛋,查看是否有'
    res = func()

    print(next(res))
    print(next(res))
    print(next(res))
    print(next(res))
    等同
    print(res.__next__())
    print(res.__next__())
    print(res.__next__())
    print(res.__next__())
    定义一个range功能,创建一个自定义的生成对像
    def my_range(start, end, move=1):
       while start < end:
           yield start
           start += move

    g_range = my_range(1, 5,1)
    l = []
    for i in g_range:
       l.append(i)
    print(l)

    表达式形式的yield也可用于返回多个值,即变量名等一yield的形式

    def eater():
       print('ready to eat')
       food_list = []
       while True:
           food = yield food_list
           food_list.append(food)
    e = eater()
    next(e)
    print(e.send('烧子鹅'))
    print(e.send('烧花鸭'))

     

     

  • 相关阅读:
    解决PHP下打开phpMyAdmin出现403错误 Jimmy
    SQL Server连接中三个常见的错误分析
    CD唱片格式知识
    ehlib的DBGridEh控件中使用过滤功能的方法
    TransactSQL MSDN入口
    发烧音响网站大全
    Transact SQL 语 句 功 能
    wwFilterDialog 取得條件
    器材价格 参考用
    phpadmin.config设定
  • 原文地址:https://www.cnblogs.com/cyfdtz/p/11892268.html
Copyright © 2020-2023  润新知