Sobes.tech
Back to questions
Junior — Middle
84

Каким образом в Python создается и применяются декораторы для функций или методов?

Companies where asked
AxenixAxenix

Answer from AI

sobes.tech AI

В Python декораторы — это функции, которые принимают другую функцию и возвращают новую функцию с расширенным поведением.

Создаются декораторы обычно так:

def decorator(func):
    def wrapper(*args, **kwargs):
        # код до вызова функции
        result = func(*args, **kwargs)
        # код после вызова функции
        return result
    return wrapper

Применение декоратора к функции:

@decorator
def say_hello(name):
    print(f"Hello, {name}!")

say_hello("Alice")

При вызове say_hello фактически вызывается wrapper, который может добавить дополнительную логику до и после вызова исходной функции.

Декораторы часто используются для логирования, проверки прав доступа, измерения времени выполнения и других аспектов.

Для методов классов декораторы работают аналогично, например:

class MyClass:
    @decorator
    def method(self):
        pass

Также существуют встроенные декораторы, например @staticmethod, @classmethod.