Встречается на 1% собеседований по Python
Как писали асинхронный код до появления 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
интервью вопросы и ответы