yield关键字功能及用法

源于: 执行类代码 --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。

发布了255 篇原创文章 · 获赞 28 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43283397/article/details/104286508