Часто при изучении Python, начинающие разработчики сталкиваются с символом «@», который может вызвать недоумение. Особенно это может быть заметно при просмотре чужого кода или при чтении документации. Например, код может выглядеть так:
@class_decorator class MyClass: @method_decorator def my_method(self): pass
Символ «@» в Python используется перед именем функции или метода и называется «декоратором». Декораторы — это способ модифицировать поведение функции или класса, не изменяя самого исходного кода.
По сути, декоратор — это функция, которая принимает другую функцию в качестве аргумента, добавляет к ней некоторую функциональность и возвращает эту функцию. Это позволяет обернуть функцию или класс в декоратор и изменить их поведение без необходимости изменять исходный код.
Простейший пример декоратора:
def my_decorator(func): def wrapper(): print("Before function call") func() print("After function call") return wrapper @my_decorator def say_hello(): print("Hello!") say_hello()
В этом примере, @my_decorator
применяется к функции say_hello()
. Это эквивалентно вызову say_hello = my_decorator(say_hello)
. Когда мы вызываем say_hello()
, она сначала печатает «Before function call», затем выполняет исходную функцию say_hello()
, и наконец, печатает «After function call».
Таким образом, символ «@» в Python используется для применения декораторов к функциям или классам, позволяя изменять их поведение без изменения исходного кода.
Добавить комментарий