Встречается на собеседованиях • сегодня
Как написать свой декоратор
Декоратор в Python — это функция, которая принимает другую функцию и расширяет её поведение, не изменяя исходный код.
Пример простого декоратора:
python
def my_decorator(func):
def wrapper(*args, **kwargs):
print("До вызова функции")
result = func(*args, **kwargs)
print("После вызова функции")
return result
return wrapper
@my_decorator
def say_hello(name):
print(f"Привет, {name}!")
say_hello("Мир")
text
**Вывод:** До вызова функции
Привет, Мир!
После вызова функции
text
**Ключевые моменты:**
- Декоратор принимает функцию (`func`) и возвращает новую (`wrapper`).
- `*args, **kwargs` позволяют передавать любые аргументы в оборачиваемую функцию.
- `@синтаксис` — это "сахар" для `say_hello = my_decorator(say_hello)`.
Для сохранения метаданных (например, `__name__`) используй `functools.wraps`:
```python
from functools import wraps
def my_decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
...
return wrapper
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы