Sobes.tech
Back to questions
Junior — Middle
70

Каким образом создать собственный декоратор в языке программирования?

Answer from AI

sobes.tech AI

В 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("Мир")

Вывод:

До вызова функции
Привет, Мир!
После вызова функции

Таким образом, декоратор позволяет обернуть функцию дополнительным поведением без изменения её кода.