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

5

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

C#示例:

async void asyncTask(){
    await asyncMethod()
}

Python示例:

async def asyncTask():  
    await async_method()

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

1个回答

6

PEP 492(添加awaitasync关键字的提案)中提到了C#也使用它们(除其他语言外):

"async" 和 "await" 关键字的原因

异步/等待在编程语言中并不是一个新概念:

  • C# 早已拥有这个功能 [5];
  • ECMAScript 7 提案中加入异步/等待 [2]; 另请参见 Traceur 项目 [9];
  • Facebook 的 Hack/HHVM [6];
  • Google 的 Dart 语言 [7];
  • Scala [8];
  • 提案将异步/等待添加到 C++ [10];
  • 以及许多其他不太流行的语言。

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

(强调我的)

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接