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