Страницы

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

среда, 16 января 2019 г.

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

В 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.

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

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