Junior — Middle
Դուք ունեցել եք փորձ ձեր նախագծերում դեկորատորների օգտագործման հետ?
sobes.tech AI
Պատասխան AI-ից
Այո, իմ նախագծերում ես օգտագործել եմ դեկորատորներ՝ ֆունկցիաների և մեթոդների գործառույթը ընդլայնելու համար՝ առանց նրանց ծագող կոդը փոխելու։ Օրինակ՝ ֆունկցիաների կանչումները գրանցելու, կատարման ժամանակը չափելու կամ մուտքի իրավունքները ստուգելու համար։
Պարզ դեկորատորի օրինակ՝ գրանցման համար՝
def log_calls(func):
def wrapper(*args, **kwargs):
print(f"{func.__name__} ֆունկցիայի կանչը args: {args}, kwargs: {kwargs}")
result = func(*args, **kwargs)
print(f"{func.__name__} ֆունկցիան վերադարձրել է {result}")
return result
return wrapper
@log_calls
def add(a, b):
return a + b
add(2, 3)
Դեկորատորները օգնում են գրել ավելի մաքուր և պահպանելի կոդ, հատկապես ավտոմատացման ժամանակ, երբ հաճախ անհրաժեշտ է ավելացնել կրկնվող գործողություններ՝ փորձարկման ֆունկցիաների շուրջ։