经常会被yield和yield from分不清楚,实际上yield from的作用就是像一个大函数分成多个子函数一样,但是只能像yield中调用值,因此,这是个局限性,不能像其他代码那样随心所欲的单独分离放在单独的函数中,了解上述的内容后,下面给大家详细讲解下使用内容,好啦,一起来详细了解下吧。
yield from本质:
for item in iterable: yield item的缩写版
代码示例:
def g(x): yield from range(x , 0, -1) yield from range(x) print(list(g(5)))
利用yield from语句向生成器(协程)传送数据:
def writer(): while True: w = (yield) print('>>', w) def writer_wrapper(coro1): coro1.send(None) while True: try: x = (yield) coro1.send(x) except StopIteration: pass def writer_wrapper(coro2): yield from coro2
以上就是关于yield from使用的基本介绍了,另外也给大家提供了实例内容,供大家理解,希望可以帮助学习。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)