python 3.5中的async / await关键字是否受到C#中async / await的启发?

时间:2017-08-28 11:35:49

标签: c# python asynchronous python-3.5

python 3.5中的

async / await(语法和关键字)与C#中的async / await非常相似。

C#示例:

async void asyncTask(){
    await asyncMethod()
}

Python示例:

async def asyncTask():  
    await async_method()

问题:是否受到C#中async / await启发的python 3.5中的async / await?如果是,为什么?

1 个答案:

答案 0 :(得分:5)

PEP 492(添加awaitasync关键字的提案)中,C#使用它们mentioned(除了其他人):

  

为什么“async”和“等待”关键字

     

async / await不是编程语言中的新概念:

     
      
  • C#拥有它很久以前[5];
  •   
  • 建议在ECMAScript 7 [2]中添加async / await;另见Traceur项目[9];
  •   
  • Facebook的Hack / HHVM [6];
  •   
  • Google的Dart语言[7];
  •   
  • Scala [8];
  •   
  • 建议将async / await添加到C ++ [10];
  •   
  • 和许多其他不那么流行的语言。
  •   
     

这是一个巨大的好处,因为一些用户已经具有异步/等待的经验,并且因为它使得在一个项目中使用多种语言更容易(例如,使用ECMAScript 7的Python)。

(强调我的)

因此,关键字名称确实受到C#(和其他语言)的启发,以及“为什么”也在上一段中进行了解释。