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