Advertisement

协程发展史:由yield至await

阅读量:

在Python 2.5版本中,yield关键字被允许出现在表达式之中,同时生成器API新增了send()方法,从这一时期起,生成器便具备了作为协程的功能。

进入Python 3.3版本后,PEP380标准被引入,其中定义了yield from语句。借助该语句,可以将结构复杂的生成器重新组织为多个小型嵌套生成器;此外,自该版本起生成器支持返回值,在此之前若在生成器中添加return语句则会触发SyntaxError错误。

Python 3.4版本中引入了asyncio标准库,该库直接提供了对异步IO操作的内置支持。

Python 3.5版本则引入了async/await语句,使得协程的编写与使用变得更加便捷。

本文系列将围绕上述发展历程,探讨协程技术的演变过程。

yield/send时代

在先前已有文献对协程概念进行阐述的基础上,此处将直接呈现相关测试代码。

复制代码
 import random

    
 import time
    
  
    
 def fibonacci(n):
    
     index = 0
    
     a,b = 0,1
    
     while index < n:
    
     sleep_cnt = yield b
    
     print('let me think 

全部评论 (0)

还没有任何评论哟~