从下面的例子中,我试图计算 long_time() 和 long_time2() 的性能:
但是出现错误提示“TypeError: performance() missing 1 required positional argument: 'fun':”
from time import time
def performance(fun):
def wrapper_fun(*args , **keyargs):
t1 = time()
res = fun(*args,**keyargs)
t2 = time()
print(f'took {t2 -t1} s')
return res
return wrapper_fun
@performance()
def long_time():
print('1')
for i in range(100000):
i*5
@performance()
def long_time2():
print('2')
for i in list(range(100000)):
i*5
long_time()
long_time2()
答案 0 :(得分:0)
不要呼叫performance
。而不是 @performance()
写 @performance
。
@performance
def long_time():
print('1')
for i in range(100000):
i*5
参数 fun
将作为装饰器使用(python 调用该方法)自动传递。