Встречается на собеседованиях • сегодня
Как сделать декоратор принимающий асинхронную функцию в 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
интервью вопросы и ответы