написать декоратор для оценки времени вычисления функции. Оценить время выполнения функции с его помощью
Кто может подсказать что тут не так?
def gcd(a,b):
if b==0:
return a
else:
return gcd(b,a%b)
n1 = int(input())
n2 = int(input())
print(gcd(n1, n2))
def decorator():
def wrapper():
startTime = datetime.datetime.now()
gcd(a,b)
durationTime = datetime.datetime.now() - startTime
print("Used time: ")
print(durationTime)
return wrapper()
def mainFunc():
decorator()
mainFunc() ```
Ответы (1 шт):
Автор решения: Krutoy 4el
→ Ссылка
дополняю комментарии от CrazyElf кодом:
def decorator(func):
def wrapper(*args, **kvargs):
startTime = datetime.datetime.now()
result = func(*args, **kvargs)
print("Used time:", datetime.datetime.now() - startTime)
return result
return wrapper
@decorator
def gcd(a,b):
if b==0:
return a
else:
return gcd(b,a%b)
*args и **kvargs используются для того, чтобы передать все позиционные аргументы и аргументы типа ключ-значение в оригинальную функцию.