这一运算符from yield to await——Python协程演进过程(三)

这一part专讲yield from 语法。在前一篇文章中,我们实现了一个协程版的生产者花费者,在上一篇文章中,须要应用异常机制来返回花费者函数的值。这种写法是非常讨厌的,在python中,可以应用yield from来简化这种写法。

in运算符

在python中,如果在对象的表示上须要实现一些新的动作,就会用到内置的魔法方式,也就是那些被双下划线包裹的方式。比如让自定义类型的对象实现加运算,只须要重写该自定义对象的__add__方式。

在python中除了+运算符这些常见的运算符,python还实现了in运算符。把这一运算符作为要害词在其他语言里很少见到。这一设计,使得断定“对象是否处于聚集中”这种动作只须要一个if语句,而且还让for循环的可读性晋升了一个level。而一个对象只要实现了迭代器相干的魔法方式,就支撑in运算,协程也支撑。

yield from新语法

在协程的调用方,一个简化版的调用往往长这样子:

for v in g: yield v