# _*_ coding:utf-8 _*_
# intend:简单装饰器的功能
# time:2017年11月28日10:20:28
# author:lucktime
## 通用装饰器
def PrintData(func):
def inner(*argvs,**kwargcs):
print('printData ')
x = func(*argvs,**kwargcs)
return x
return inner
## 带参数的装饰器
def Argv_Fun(argv):
def PrintData(func):
def inner(*argvs,**kwargcs):
print('printData Argv_Fun')
print(argv)
x = func(*argvs,**kwargcs)
return x
return inner
return PrintData
'''
test()
打印结果:
printData
printData Argv_Fun
hello Jack
==============print test
'''
@PrintData
@Argv_Fun('hello Jack')
def test():
print('==============print test')
'''
test1(3)
打印结果:
printData Argv_Fun
hello Jack
printData
==============print test1 value 3
'''
@Argv_Fun('hello Jack')
@PrintData
def test1(a):
print('==============print test1 value %d'%a)
'''
print(test2())
打印结果:
printData
printData Argv_Fun
hello Jack
==============print test2
test2
'''
@PrintData
@Argv_Fun('hello Jack')
def test2():
print('==============print test2')
return "test2"
'''
print(test4(2,5))
printData
printData Argv_Fun
hello Jack
==============print test4 2 + 5 = 7
7
'''
@PrintData
@Argv_Fun('hello Jack')
def test4(a,b):
print('==============print test4 %d + %d = %d'%(a,b,(a+b)))
return a+b
test()
test1(3)
print(test2())
print(test4(2,5))