Junior — Middle
100
Wie wurde Asynchronität in Python vor Version 3.6 umgesetzt, vor der Einführung der Konstruktion async def?
Unternehmen wurden gefragt
Antwort von AI
sobes.tech KI
До появления конструкции async def в Python 3.5 и её улучшений в 3.6, асинхронность реализовывалась с помощью модуля asyncio, который использовал корутины на основе генераторов. Вместо async def применялись генераторы с ключевым словом yield from для приостановки и возобновления выполнения.
Основные моменты:
- Корутины объявлялись как обычные генераторы с
yieldилиyield from. - Для запуска событийного цикла использовался
asyncio.get_event_loop()и методыrun_until_complete(). - Для асинхронного ожидания использовался
yield fromвместоawait.
Пример корутины до async/await:
import asyncio
def hello():
print('Hello')
yield from asyncio.sleep(1)
print('World')
loop = asyncio.get_event_loop()
loop.run_until_complete(hello())
loop.close()
В современных версиях код стал более читаемым благодаря async def и await.