Встречается на собеседованиях • сегодня
Как реализован декоратор в 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():
print("Привет!")
say_hello()
text
Ключевые моменты:
1. Декоратор принимает функцию `func` как аргумент
2. Внутри создаётся функция-обёртка `wrapper`
3. `wrapper` вызывает оригинальную функцию с переданными аргументами
4. Декоратор возвращает `wrapper` вместо оригинальной функции
Для сохранения метаданных исходной функции используют `functools.wraps`:
```python
from functools import wraps
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы