07 Июл 2023
2 мин
1022

Символ «@» в Python

Часто при изучении Python, начинающие разработчики сталкиваются с символом «@», который может вызвать недоумение. Особенно это может быть заметно

Содержание

Часто при изучении 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 используется для применения декораторов к функциям или классам, позволяя изменять их поведение без изменения исходного кода.

Содержание

Добавить комментарий

Определи профессию по рисунку