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