PEP 530: Асинхронні генератори списків вже тут

1 хв. читання

В Python вже додали нативні співпрограми та асинхронні генератори. Настав час і для генераторів списків (а також словників, множин і короткого оголошення генераторів).

Власне, в чому проблема?

Python має вбудований короткий та потужний синтаксис для створення списків, словників, множин і короткого оголошення генераторів. В PEP 530 описується реалізація цього механізму для асинхронного коду. Давайте розглянемо на прикладі. Цей код:

result = []
async for i in aiter():
    if i % 2:
        result.append(i)

Можна буде записати ось так:

result = [i async for i in aiter() if i % 2]

Також всередині допускається використання await:

result = [await fun() for fun in funcs]

Як бачите, тут await використовується без async for. Новий PEP дозволяє використовувати його як з синхронними, так і з асинхронними циклами.

Мені подобається, але коли цим можна буде користуватися?

Вельмишановний пан Гвідо 6 вересня 2016 р. схвалив це нововведення, воно буде включено в Python 3.6, який вийде в кінці грудня (або раніше), а бета-версія (3.6.0 beta 1) доступна вже зараз. Нагадаємо, що асинхронні генератори також доступні в Python 3.6.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.8K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація