Sobes.tech
Junior — Middle

Pythonдеги декораторлордун концепциясын жана алар функциялардын жүрүм-турумун өзгөртүү үчүн кандай колдонулушун түшүндүрүңүз.

sobes.tech AI

AIден жооп

Python'деги декораторлор башка бир функцияны кабыл алып, өзгөртүлгөн же кеңейтілген жүрүм-турум менен жаңы функцияны кайтарат, бул декорацияланган функциянын баштапкы кодун өзгөртпөй.

Алар көбүнчө колдонулат:

  • Чалуу журналдарын жүргүзүү үчүн
  • Кирүү укуктарын текшерүү үчүн
  • Натыйжаларды кэшдөө үчүн
  • Ишке ашыруу убактысын өлчөө үчүн

Жөнөкөй декоратордун мисалы, ал функцияны чакырганга чейин жана кийин билдирүү чыгарат:

def decorator(func):
    def wrapper(*args, **kwargs):
        print("Функцияны чакырганга чейин")
        result = func(*args, **kwargs)
        print("Функцияны чакыргандан кийин")
        return result
    return wrapper

@decorator
def say_hello(name):
    print(f"Салам, {name}!")

say_hello("Дүйнө")

Жыйынтык мындай болот:

Функцияны чакырганга чейин
Салам, Дүйнө!
Функцияны чакыргандан кийин

Ошентип, декораторлор функциялардын жүрүм-турумун динамикалык түрдө өзгөртүүгө мүмкүндүк берет, алардын баштапкы кодун өзгөртпөстөн.