python 3.5 中的 async/await 关键字是不是受到 C# 中的 async/await 的启发? [关闭]

Posted

技术标签:

【中文标题】python 3.5 中的 async/await 关键字是不是受到 C# 中的 async/await 的启发? [关闭]【英文标题】:Are the async/await keywords in python 3.5 inspired by async/await in C#? [closed]python 3.5 中的 async/await 关键字是否受到 C# 中的 async/await 的启发? [关闭] 【发布时间】:2018-02-05 16:00:58 【问题描述】:

python 3.5 中的async/await(语法和关键字)与 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】:

在PEP 492(添加awaitasync 关键字的建议)中,C# 使用它们的是mentioned(除了其他):

为什么要用“async”和“await”关键字

async/await 在编程语言中并不是一个新概念:

很久以前C#就有了[5]; 建议在 ECMAScript 7 [2] 中添加 async/await;另见 Traceur 项目 [9]; Facebook 的 Hack/HHVM [6]; Google 的 Dart 语言 [7]; 斯卡拉 [8]; 建议在 C++ [10] 中添加 async/await; 和许多其他不太流行的语言。

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

(强调我的)

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

【讨论】:

以上是关于python 3.5 中的 async/await 关键字是不是受到 C# 中的 async/await 的启发? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Python Async/Await入门指南

python 异步 async/await -1.一文理解什么是协程

Python 3.5新特性都有些什么

理解Python协程:从yield/send到yield from再到async/await

对python async与await的理解

异步编程Async/await关键字