初级实现:
import time
def func():
start=time.time();
print("Hello Boss!!")
time.sleep(5)
end=time.time();
print(end-start)
func()
优化+
import time
def timmer(f):
start=time.time();
f()
end=time.time();
print(end-start)
def func():
time.sleep(5)
print("Hello Boss!!")
timmer(func)
师傅在优化
import time
def timmer(f):
def ium():
start=time.time();
f()
end=time.time();
print(end-start)
return ium
def func():
time.sleep(5)
print("Hello Boss!!")
func=timmer(func) #内存地址做赋值 正常
func()
改写成 语法糖模式
import time
#语法糖
def timmer(f):
def ium():
start=time.time();
f()
end=time.time();
print(end-start)
return ium
@timmer #func=timmer(func) 装饰器函数名
def func(): #被装饰的函数
time.sleep(5)
print("Hello Boss!!")
#内存地址做赋值 正常
func()
再次优化 比丘兽
import time
# print(time.time()) # 获取当前时间
# time.sleep(10) #让程序在执行到这个位置的时候停一会儿
def timmer(f): #装饰器函数
def inner():
start = time.time()
ret = f() #被装饰的函数
end = time.time()
print(end - start)
return ret
return inner
#
@timmer #语法糖 @装饰器函数名
def func(): #被装饰的函数
time.sleep(0.01)
print('老板好同事好大家好')
return '新年好'
# func = timmer(func)
ret = func() #inner()
print(ret)
##
没拿到返回值
def outer():
def inner():
return 'inner'
inner()
outer() #返回none