Python中yield是什么
Posted MrDoghead
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中yield是什么相关的知识,希望对你有一定的参考价值。
介绍
我们有时候会发现代码中return的地方,有用yield的,难道他们一样吗?其实,yield与return看起来很像,但实际上完全不同。
使用
def test():
print("****start****")
while 1:
res = yield 1
print("res:", res)
t = test() # 函数中有yield关键字,所以函数并不会真的执行,而是先得到一个生成器t
print(next(t)) # next让函数开始执行,打印start,然后把1返回给next(t),并把1打印出来,这时res还没赋值
print("*"*10) # 打印十个*
print(next(t)) # 函数从res = yield开始执行,但是1已经被yield出去了,所以res实际上没有值,就是None,然后while重新循环,1被yield出去打印
# ****start****
# 1
# **********
# res:None
# 1
你绕出来了吗?
以上是关于Python中yield是什么的主要内容,如果未能解决你的问题,请参考以下文章
Python yield用法浅析(stackoverflow)