Back to questions
Junior — Middle
52
Какими методами можно применить декоратор в вашем коде?
Answer from AI
sobes.tech AI
В Python декоратор можно применить несколькими способами:
- Синтаксис с
@перед определением функции или класса:
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()
- Явное применение декоратора при присваивании:
def say_hello():
print("Hello")
say_hello = decorator(say_hello)
say_hello()
- Декораторы для классов:
@decorator
class MyClass:
pass
- Использование декораторов с параметрами:
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()
Таким образом, декоратор можно применить либо через синтаксис @, либо вручную, обернув функцию или класс.