【发布时间】:2017-09-18 02:44:45
【问题描述】:
所以,这是一个python表达式:
a = yield from f()
这是什么意思?它可以在哪里使用? f 应该是一个什么样的对象?计算表达式后a 的值是多少?
stackoverflow 上有几个关于 python 的 yield 和 yield from 的问题,但我没有找到答案。
我理解yield x、y = yield 和y = yield x 的含义。甚至yield from f() 也或多或少可以理解。但是a = yield from f() 让我意想不到。
更新:
B. Barbieri 提供了正确的答案。我仍然需要用不同的方式来表述它。
表达式a = yield from f() 的语义与函数调用非常相似:a 的值将是f() 返回的值。但是如果f() 产生任何东西,产生的值将被转发到“上层”(你只能在函数内写a = yield from f(),这将使你成为一个生成器)。如果在那之后“上层”将一个值发送回您的生成器,该值将被转发到f(),f() 将继续。
yield from 允许f() 和“上层”在您的函数运行时进行通信。
我想现在我明白了yield from 的全部含义,希望这个解释对其他人有所帮助。
【问题讨论】:
标签: python-3.x yield yield-from