#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# '''python简单的装饰器'''
# def log(func):
# def wrapper():
# func()#调用相当于chen()
# print('2222')
# print('执行顺序')
# return wrapper#把函数名返回给chen(),此时chen()= wrapper()
#
# @log #相当于log(chen)
# def chen():
# print ('2013-12-25')
# print('python不难啊')
# chen()#调用chen()相当于调用wrapper()
'''多个装饰器的使用方式'''
import time
def deco01(func):
def wrapper(*args, **kwargs):
print("this is deco01")
startTime = time.time()
func(*args, **kwargs)
endTime = time.time()
msecs = (endTime - startTime)*1000
print("time is %d ms" %msecs)
print("deco01 end here")
return wrapper
def deco02(func):
def wrapper(*args, **kwargs):
print("this is deco02")
func(*args, **kwargs)
print("deco02 end here")
return wrapper
def deco03(func):
def wrapper(*args, **kwargs):
print("this is deco03")
func(*args, **kwargs)
print("deco03 end here")
return wrapper
@deco01
@deco02
@deco03#先执行第三个装饰器(先解析deco01,但先执行deco03)
def func(a,b):#经过装饰器后会有三个值 wrapper
print("hello,here is a func for add :")
time.sleep(1)
print("result is %d" %(a+b))
if __name__ == '__main__':
f = func
f(3,4)
#func()