一般求区间偶数,然后计时
import time
def cal_even(num):
if num%2==0:
return True
else:
return False
def cal():
t1 = time.time()
for i in range(1,50000):
if cal_even(i):
print(i)
t2 = time.time()
print(t2-t1)
cal()
但是这样写便这里显得代码不够简洁,可读性不好
便可以编写装饰器来代替这段代码
import time
def cal_decorate(func):
def wrapper():
t1 = time.time()
func()
t2 = time.time()
print(t2-t1)
return wrapper
def cal_even(num):
if num%2==0:
return True
else:
return False
@cal_decorate
def cal():
for i in range(1,50000):
if cal_even(i):
print(i)
cal()
带参数的装饰器
import time
def cal_decorate(func):
def wrapper(*args):
t1 = time.time()
func(*args)
t2 = time.time()
print(t2-t1)
return wrapper
def cal_even(num):
if num%2==0:
return True
else:
return False
@cal_decorate
def cal(maxnum):
for i in range(1,maxnum):
if cal_even(i):
print(i)
cal(5000)