gpt4 book ai didi

python - yield as assignment 有什么作用? myVar = (产量)

转载 作者:IT老高 更新时间:2023-10-28 22:03:51 26 4
gpt4 key购买 nike

我熟悉 yield 以返回值,这主要归功于 this question

但是当它在赋值的右边时,yield 会做什么呢?

@coroutine
def protocol(target=None):
while True:
c = (yield)

def coroutine(func):
def start(*args,**kwargs):
cr = func(*args,**kwargs)
cr.next()
return cr
return start

我在 this blog 的代码示例中遇到了这个问题,同时研究状态机和协程。

最佳答案

函数中使用的 yield 语句将该函数转换为“生成器”(创建迭代器的函数)。生成的迭代器通常通过调用 next() 来恢复。但是,可以通过调用方法 send() 而不是 next() 来将值发送到函数以恢复它:

cr.send(1)

在您的示例中,这会将值 1 分配给 c 每次。

cr.next() 等效于 cr.send(None)

关于python - yield as assignment 有什么作用? myVar = (产量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2022218/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com