# 例1:
import time
def index():
start=time.time()
print("index===>")
time.sleep(0.5)
stop=time.time()
print("run time is : %s" %(stop - start))
index()
# 例2:
import time
def index():
print("index===>")
time.sleep(0.5)
start=time.time()
index()
stop=time.time()
print("run time is : %s" %(stop - start))
# 例3:
import time
def index():
print("index===>")
time.sleep(0.5)
def wrapper():
start=time.time()
index()
stop=time.time()
print("run time is : %s" %(stop - start))
wrapper()
# 例4:直接通过参数为函数体传参
import time
def index():
print("index===>")
time.sleep(0.5)
def wrapper(func):
start=time.time()
func()
stop=time.time()
print("run time is : %s" %(stop - start))
wrapper(index)
# 例5:直接通过参数为函数体传参
import time
def index():
print("index===>")
time.sleep(0.5)
def outter(func):
# func=index的内存地址
def wrapper():
start=time.time()
func()
stop=time.time()
print("run time is : %s" %(stop - start))
return wrapper # 千万不要加括号
index=outter(index)
index() # wrapper()
# 例6:
import time
def index(x,y,z):
print("index===>",x,y,z)
time.sleep(0.5)
return 123
def home(name):
print('welcome %s to home page' %name)
time.sleep(1)
# index(1,2,3)
# home("egon")
def outter(func):
# func=index的内存地址
def wrapper(*args,**kwargs):
start=time.time()
res=func(*args,**kwargs)
stop=time.time()
print("run time is : %s" %(stop - start))
return res
return wrapper # 千万不要加括号
index=outter(index)
res=index(1,2,3) # wrapper(1,2,3)
print(res)
home=outter(home)
res=home("egon")
print(res)
# 例7:语法糖
import time
from functools import wraps
def timmer(func):
@wraps(func)
def wrapper(*args,**kwargs):
start=time.time()
res=func(*args,**kwargs)
stop=time.time()
print("run time is : %s" %(stop - start))
return res
# wrapper.__name__=func.__name__
# wrapper.__doc__=func.__doc__
return wrapper # 千万不要加括号
@timmer # index=timmer(index)
def index(x,y,z):
"""
index的文档注释
"""
print("index===>",x,y,z)
time.sleep(0.5)
return 123
@timmer # home=timmer(home)
def home(name):
"""
home的文档注释
"""
print('welcome %s to home page' %name)
time.sleep(1)
res=index(1,2,3) # wrapper(1,2,3)
print(res)
res=home("egon")
print(res)
# help(index)
print(index.__name__)
# 例8:
def auth(func):
def wrapper(*args,**kwargs):
name=input("username>>: ").strip()
pwd=input("password>>: ").strip()
if name == "egon" and pwd == "123":
print('login successful')
res=func(*args,**kwargs)
return res
else:
print("username or password error")
return wrapper
@auth
def index():
print('from index')
index()