В Python 3.5 добавили ключевые слова async, await (согласно PEP 492 - Coroutines with async and await syntax). Но это не нашло отражения в модуле keyword. Так, код
import keyword
for kword in keyword.kwlist:
print(kword)
выдает следующее:
False
None
True
and
as
assert
break
class
continue
def
del
elif
else
except
finally
for
from
global
if
import
in
is
lambda
nonlocal
not
or
pass
raise
return
try
while
with
yield
То есть это ошибка или async, await не стали ключевыми словами?
Ответ
Соседний ответ не вполне верен. Это вовсе не ошибка. Они действительно не являются полноценными ключевыми словами до Python 3.7, и об этом прямо сказано в PEP 492
Deprecation Plans
async and await names will be softly deprecated in
CPython 3.5 and 3.6. In 3.7 we will transform them to proper keywords.
Making async and await proper keywords before 3.7 might make it harder
for people to port their code to Python 3.
Планы по устареванию
Идентификаторы async и await будут мягко обозначены устаревшими в CPython 3.5 и 3.6. В 3.7 мы сделаем их полноценными ключевыми словами. Становление async и await полноценными ключевыми словами до 3.7 может обернуться для людей сложностями в портировании кода на Python 3.
Комментариев нет:
Отправить комментарий