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

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

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

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

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