装饰器
帮忙看看下面的代码!import time
def fun_time(func):
def print_time(*args):
t1 = time.time()
func(*args)
t2 = time.time()
print("运行时间为",t2-t1)
return print_time
@print_time
def fib(n):
if n==1 or n==2:
return 1
else:
i,f1,f2 =2,1,1
while(i<n):
f3 = f1+f2
f1 = f2
f2 = f3
i+=1
print(f3)
fib(10000)
结果:<function __main__.print_time(func)> 我这里会报错,应该是这样吧
import time
def fun_time(func):
def print_time(*args):
t1 = time.time()
func(*args)
t2 = time.time()
print("运行时间为",t2-t1)
return print_time
@fun_time
def fib(n):
if n==1 or n==2:
return 1
else:
i,f1,f2 =2,1,1
while(i<n):
f3 = f1+f2
f1 = f2
f2 = f3
i+=1
print(f3)
fib(10000) 应该是 @fun_time 不是 @print_time 。代码帮你改好了:
import time
def fun_time(func):
def print_time(*args):
t1 = time.time()
func(*args)
t2 = time.time()
print("运行时间为", t2 - t1)
return print_time
@fun_time
def fib(n):
if n == 1 or n == 2:
return 1
else:
i, f1, f2 = 2, 1, 1
while i < n:
f3 = f1 + f2
f1 = f2
f2 = f3
i += 1
print(f3)
fib(10000)
页:
[1]