Страницы

Поиск по вопросам

пятница, 3 января 2020 г.

async, await - это ключевые слова? С точки зрения модуля keyword - нет!

#python #python_3x #async_await


В 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 не стали ключевыми словами?
    


Ответы

Ответ 1



Соседний ответ не вполне верен. Это вовсе не ошибка. Они действительно не являются полноценными ключевыми словами до 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.

Ответ 2



Это ошибка но она уже исправлена в комите https://github.com/python/cpython/commit/ac317700ce7439e38a8b420218d9a5035bba92ed

Комментариев нет:

Отправить комментарий