Python中yeild的用法详解

本文详细介绍了Python中的yield关键字,说明其在生成器中的作用。通过示例解析了生成器如何工作,包括其暂停和恢复执行的特性。最后探讨了如何合理使用生成器来节省内存,特别是在处理大量数据时。
摘要由CSDN通过智能技术生成

Python中yeild的用法详解

  1. 初步认识:先把yield看做return

    return:在程序中返回某个值,返回后程序就不再往下运行了

    代码:

     def foo():
         print("starting...")
         while True:
             res = yield 4
             print("res:",res)
     g = foo()
     print(next(g))
     print("*"*20)
     print(next(g))
    

    代码输出:

     starting...
     4
     ********************
     res: None
     4
    

    代码解释:

    1. 程序开始执行的时候,因为foo函数中有yield关键字,所以foo函数并不会真的执行,而是先得到一个生成器g(相当于一个对象)
    2. 直到调用next方法,foo函数正式开始执行,先执行foo函数中的print方法,然后进入while循环
    3. 程序遇到yield关键字,然后把yield想成return,return了一个4后,程序停止,并没有执行操作’赋值给res’,此时next(g)语句执行完成,所以输出的前两行(第一个是while上面的print的结果,第二个是return出的结果)是执行print(next(g))的结果
    4. 程序执行print("*""*20),输出20个*
    5. 再次执行print(next(g)),此时从nex
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值