Встречается на собеседованиях • сегодня
Как писали асинхронный код до появления async/await
До async/await в Python использовались различные подходы для асинхронного программирования:
- Callback-функции (как в Node.js) - передача функций, которые вызываются при завершении операции:
python
def callback(result):
print("Got result:", result)
def async_op(callback):
# Имитация долгой операции
import time
time.sleep(1)
callback(42)
async_op(callback)
text
2. **Генераторы и yield** - использовали yield для приостановки выполнения:
```python
def async_op():
yield "start"
yield "processing"
yield "done"
coroutine = async_op()
print(next(coroutine)) # start
print(next(coroutine)) # processing- Twisted/Gevent - популярные библиотеки:
- Twisted использовал Deferred-объекты (аналог промисов)
- Gevent использовал monkey-patching для переключения контекста
- asyncio до async/await - использовал декоратор @asyncio.coroutine и yield from:
python
@asyncio.coroutine
def old_style_coro():
yield from asyncio.sleep(1)
return "done"Эти подходы были менее читаемыми и требовали больше boilerplate-кода по сравнению с современным async/await.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы