yield关键字功能及用法

本文深入探讨了Python中生成器的概念及其核心关键字yield的使用方法。通过具体示例,展示了yield如何使函数暂停并保存状态,以及如何通过next()和send()方法恢复执行和传递值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源于: 执行类代码 --parallel_str_search.py – 函数read_data


yield功能及用法:

  通俗理解,当程序执行到标有yield关键词的代码语句时,其相当于一个return,将值返回后函数冻结,遇到next()方法时,函数解冻,继续执行。

栗子1:

def f():
    print("starting...")
    while True:
        res = yield 6
        print("res:", res)
g = f()
print(next(g))
print(">" * 10)  # 输出10个‘>’
print(next(g))

结果为:

starting...
6
>>>>>>>>>>
res: None
6

栗子2:

def f():
    print("starting...")
    while True:
        res = yield 6
        print("res:", res)
g = f()
print(next(g))
print(">" * 10)  # 输出10个‘>’
print(g.send(7))
starting...
6
>>>>>>>>>>
res: 7
6

第一个栗子的输出 res的值是None,第二个变成了7,这是因为,send发送给res一个参数,res被赋值成了7。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值