求大佬解释下下面代码
这是一个计算函数snn运行时间的代码,但我看不懂两处*args,**argkw的意思,还有如果我不想用第二段语法糖@timecal形式,用timecal(snn(100))为啥算不出运行时间的结果?{:10_250:} 谢谢!import time
def timecal(func):
def wrapper(*args,**argkw):
start = time.time()
func(*args,**argkw)
stop = time.time()
print('运行时间=%s' % (stop - start))
return wrapper
@timecal
def snn(n, beg = 1):
s = 0
for i in range(beg, n + 1):
s += i
print('%s - %s 的和为 %s;' % (beg, n, s)) 补充下我的意思是:上面计算snn运行时间用snn(100)就能得出运行时间的结果
但是如果去掉@timecal这行,并且在下面计算timecal(snn(100))算不出snn(100)的运行时间,这是为什么?
如果我不想用语法糖@timecal这种形式,怎样才能得出snn(100)的运行时间?{:9_221:} timeal(snn)(100) 代码请看楼上,*arg传入的是元组,**argkw传入的是字典,跟你传的参数有关,timecal第一句传入的是一个函数,如果用你那种输入方法,你就是输入了一个值了,怎么可能得出结果
页:
[1]