【发布时间】:2017-09-03 09:30:45
【问题描述】:
我已经了解了新的 Python “关键字”async 和 await。然而,它们既不是真正的关键字,也不是保留在命名空间中。
>>> import keyword
>>> keyword.iskeyword("async")
False
>>> async
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'async' is not defined
在示例中,我希望 True 和 SyntaxError 作为关键字。
那么,async 在 Python 中到底是什么?它是如何工作的?
【问题讨论】:
-
async仅适用于 Python 3.5。是你用的那个版本吗? -
async和await还不是“真正的”关键字,但它们将出现在 Python 3.7 中。 -
我使用 Python 3.6.0
-
根据PEP 492
async是一个语句限定符。 -
@Thyrst':如果您查看 Python 3.6 的 reference grammar,您会发现
async和await在没有旁边没有函数定义的情况下没有独立的标识。所以它们不是关键字,但是如果你在它旁边放一个 lambda 函数,编译器会识别它们。
标签: python python-3.x asynchronous async-await keyword