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("Աշխարհ")

Արդյունքը կլինի՝

Առաջին զանգից առաջ
Բարև, Աշխարհ!
Հետո զանգից հետո

Այս կերպ, դեկորատորները թույլ են տալիս դինամիկ կերպով փոխել ֆունկցիաների վարքը՝ առանց նրանց աղբյուրային կոդը փոխելու։