Встречается на собеседованиях • сегодня
Как реализована асинхронность в Pyhon до версии 3.6 (до появления async def)
До Python 3.6 асинхронность реализовывалась через генераторы и декоратор @asyncio.coroutine. Вместо async def использовались обычные функции с декоратором, а вместо await — yield 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`.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы