您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页python 装饰器的使用--逐步添加中

python 装饰器的使用--逐步添加中

来源:二三娱乐
# _*_ 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))   

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务