python有个关键字yield经常会用到,但是有些点你可能没有注意到。今天我就来给大家梳理下。yield的用法,避免大家在以后的使用中产生迷惑。
介绍
yield:用于定义生成器,返回单值。如果想一直返回生成器数据,则需要自己去定义循环返回。另外,还可以跟send函数一起使用,在单线程中相互切换,多任务协调并发处理任务。
yieldfrom:后接列表、生成器、协程。与asyncio.coroutine同时使用,定义协程函数。在python3.5以后改成了await。当yieldfrom后面是IO耗时操作的时候,会切换至另一个yieldfrom。
yield用法
yieldfrom用法
与await等效用法
输出结果:
task_name:task1start……
task_name:task2start……
task_name:task2cost:1
task_name:task2finish……
task_name:task1cost:2
task_name:task1finish……
yield、yieldfrom的用法有时候很具有迷惑性,一不注意就可能出现混乱。漫漫技术之路,要时常总结,基础不牢,后面的学习也可能磕磕绊绊。如果小伙伴们有什么想了解的,可以在评论区添加。谢谢大家!