装饰器案例1:
#!\usr\bin\env\python
# -*- coding:utf-8 -*9
import time
def timer(func): #定义装饰器函数
def deco(*args,**kwargs): #定义嵌套函数
start_time=time.time()
func(*args,**kwargs)
stop_time=time.time()
print("the func run time is %s" %(stop_time-start_time)) #打印输出函数运行的结束时间
return deco
@timer #给test1函数添加功能,使用装饰器的方法进行编程
def test1(): #定义函数test1
time.sleep(2) #延时2秒打印
print("in the test1")
def test2(*args,**kwargs):
print("test2:",'alex','16')
test1() #调用test1函数
test2()
#需求:定义一个test1函数延时2秒钟打印,再使用装饰器扩展函数运行打印结束时间的功能;再定义函数test2,打印输出姓名和年龄两个变量;因此使用*args,**kwargs,进行不固定传参到func()函数当中,最后打印出的结果是:test1函数需要延时两秒钟打印输出in the test1并且计算出结束时间;test2函数需打印姓名和年龄。