Встречается на собеседованиях • сегодня

Как реализована асинхронность в Pyhon до версии 3.6 (до появления async def)

До Python 3.6 асинхронность реализовывалась через генераторы и декоратор @asyncio.coroutine. Вместо async def использовались обычные функции с декоратором, а вместо awaityield from.

Пример:

python
import asyncio

@asyncio.coroutine
def old_style_coroutine():
print("Start")
yield from asyncio.sleep(1)
print("End")

loop = asyncio.get_event_loop()
loop.run_until_complete(old_style_coroutine())

text

Ключевые моменты:
1. Декоратор `@asyncio.coroutine` помечал функцию как корутину
2. `yield from` использовался для ожидания других корутин
3. Работало на основе генераторов и event loop
4. Совместимо с новым синтаксисом (можно смешивать старый и новый стиль)

Этот подход был менее читаемым и более подвержен ошибкам, чем современный синтаксис с `async/await`.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы