TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Regional compilations Thematic compilations Платные каналы Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
  • Promotion
    Advertising through Yandex Business Advertising in channels through TGStat Agency Advertising on TGStat.ru website
Библиотека Python разработчика | Книги по питону

8 Sep, 08:12

Open in Telegram Share Report

📌 Декораторы в 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


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

📲 Мы в MAX

👉@BookPython

1.1k 0 12 4
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot