Встречается на собеседованиях • сегодня

Как написать свой декоратор

Декоратор в 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
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы