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("Աշխարհ")
Արդյունքը կլինի՝
Առաջին զանգից առաջ
Բարև, Աշխարհ!
Հետո զանգից հետո
Այս կերպ, դեկորատորները թույլ են տալիս դինամիկ կերպով փոխել ֆունկցիաների վարքը՝ առանց նրանց աղբյուրային կոդը փոխելու։