python 装饰器进阶

装饰器的进阶

 带参数的装饰器

import time
FLAGE = False
def timmer_out(flag):
    def timmer(func):
        def inner(*args,**kwargs):
            if flag:
                start = time.time()
                ret = func(*args,**kwargs)
                end = time.time()
                print(end-start)
                return ret
            else:
                ret = func(*args,**kwargs)
                return ret
        return inner
    return timmer
@timmer_out(FLAGE)
def funs():
    time.sleep(0.2)
    print('大家好呀大家好')
@timmer_out(FLAGE)
def func():
    time.sleep(0.2)
    print('新年好呀新年好')
funs()
func()

多个装饰器装饰一个函数

def wrapper1(func):
    def inner(*args,**kwargs):
        print('1111111')
        ret = func(*args,**kwargs)
        print('2222222')
        return ret
    return inner
def wrapper2(func):
    def inner(*args,**kwargs):
        print('3333333')
        ret = func(*args,**kwargs)
        print('4444444')
        return ret
    return inner
def wrapper3(func):
    def inner(*args,**kwargs):
        print('5555555')
        ret = func(*args,**kwargs)
        print('6666666')
        return ret
    return inner
@wrapper3
@wrapper2
@wrapper1
def funs():
    print('233')
    return '666'
print(funs())

转载于:https://www.cnblogs.com/GrandDarkness/p/8146012.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值