Sobes.tech
Back to questions
Junior — Middle
52

Какими методами можно применить декоратор в вашем коде?

Answer from AI

sobes.tech AI

В Python декоратор можно применить несколькими способами:

  1. Синтаксис с @ перед определением функции или класса:
def decorator(func):
    def wrapper(*args, **kwargs):
        print("До вызова функции")
        result = func(*args, **kwargs)
        print("После вызова функции")
        return result
    return wrapper

@decorator
def say_hello():
    print("Hello")

say_hello()
  1. Явное применение декоратора при присваивании:
def say_hello():
    print("Hello")

say_hello = decorator(say_hello)
say_hello()
  1. Декораторы для классов:
@decorator
class MyClass:
    pass
  1. Использование декораторов с параметрами:
def decorator_with_args(arg):
    def decorator(func):
        def wrapper(*args, **kwargs):
            print(f"Аргумент декоратора: {arg}")
            return func(*args, **kwargs)
        return wrapper
    return decorator

@decorator_with_args("Пример")
def say_hello():
    print("Hello")

say_hello()

Таким образом, декоратор можно применить либо через синтаксис @, либо вручную, обернув функцию или класс.