TG Telegram Group & Channel
Библиотека Python разработчика | Книги по питону | United States America (US)
Create: Update:

📌 Декораторы в Python: как они работают и зачем нужны?

Сегодня я покажу вам, как работают декораторы в Python и зачем они вообще нужны.

Декораторы позволяют изменять поведение функций без изменения их кода. Они широко применяются в логировании, кешировании, управлении доступом и многом другом.

Допустим, у нас есть функция, которая просто выводит «Hello, world!»:


def greet():
print("Hello, world!")


Теперь мы хотим, чтобы перед выполнением этой функции выполнялся какой-то код, например, логирование. Вместо изменения greet(), мы создадим декоратор:


def log_decorator(func):
def wrapper():
print(f"Вызов функции {func.__name__}")
return func()
return wrapper


И теперь используем его:


@log_decorator
def greet():
print("Hello, world!")

greet()


👉 Вывод:

Вызов функции greet
Hello, world!


Как это работает?
1. Декоратор принимает функцию (`func`) в качестве аргумента.
2. Внутри создаётся вложенная функция wrapper(), которая выполняет дополнительную логику перед вызовом func().
3. wrapper() возвращается вместо func, фактически подменяя её.

Можно даже передавать аргументы в декорируемую функцию:


def log_decorator(func):
def wrapper(*args, **kwargs):
print(f"Вызов {func.__name__} с аргументами: {args}, {kwargs}")
return func(*args, **kwargs)
return wrapper

@log_decorator
def add(a, b):
return a + b

print(add(3, 5))


👉 Вывод:

Вызов add с аргументами: (3, 5), {}
8


🔥 Декораторы — мощный инструмент, который делает код чище и удобнее. Если ещё не использовали их в проектах, самое время попробовать!

А какие декораторы вы используете в своих проектах? Делитесь в комментариях! ⬇️

👉@BookPython

📌 Декораторы в Python: как они работают и зачем нужны?

Сегодня я покажу вам, как работают декораторы в Python и зачем они вообще нужны.

Декораторы позволяют изменять поведение функций без изменения их кода. Они широко применяются в логировании, кешировании, управлении доступом и многом другом.

Допустим, у нас есть функция, которая просто выводит «Hello, world!»:


def greet():
print("Hello, world!")


Теперь мы хотим, чтобы перед выполнением этой функции выполнялся какой-то код, например, логирование. Вместо изменения greet(), мы создадим декоратор:


def log_decorator(func):
def wrapper():
print(f"Вызов функции {func.__name__}")
return func()
return wrapper


И теперь используем его:


@log_decorator
def greet():
print("Hello, world!")

greet()


👉 Вывод:

Вызов функции greet
Hello, world!


Как это работает?
1. Декоратор принимает функцию (`func`) в качестве аргумента.
2. Внутри создаётся вложенная функция wrapper(), которая выполняет дополнительную логику перед вызовом func().
3. wrapper() возвращается вместо func, фактически подменяя её.

Можно даже передавать аргументы в декорируемую функцию:


def log_decorator(func):
def wrapper(*args, **kwargs):
print(f"Вызов {func.__name__} с аргументами: {args}, {kwargs}")
return func(*args, **kwargs)
return wrapper

@log_decorator
def add(a, b):
return a + b

print(add(3, 5))


👉 Вывод:

Вызов add с аргументами: (3, 5), {}
8


🔥 Декораторы — мощный инструмент, который делает код чище и удобнее. Если ещё не использовали их в проектах, самое время попробовать!

А какие декораторы вы используете в своих проектах? Делитесь в комментариях! ⬇️

👉@BookPython


>>Click here to continue<<

Библиотека Python разработчика | Книги по питону




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)