Встречается на 1% собеседований по Python
Как сделать декоратор принимающий асинхронную функцию в Python
Для создания декоратора, работающего с асинхронными функциями, нужно использовать async def и await. Вот пример:
python
import functools
def async_decorator(func):
@functools.wraps(func)
async def wrapper(*args, **kwargs):
print("До вызова функции")
result = await func(*args, **kwargs)
print("После вызова функции")
return result
return wrapper
@async_decorator
async def async_function():
print("Асинхронная функция выполняется")
return 42
text
Ключевые моменты:
1. Декоратор должен возвращать асинхронную функцию (`async def`)
2. Для вызова исходной функции используем `await`
3. `functools.wraps` сохраняет метаданные оригинальной функции
4. Декоратор может быть как синхронной, так и асинхронной функцией
Пример использования:
```python
import asyncio
async def main():
result = await async_function()
print(result)
asyncio.run(main())
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы