Python_day07--装饰器-(多个装饰器的执行顺序、及应用)

本文探讨Python装饰器的执行顺序,通过实例解释了装饰器从下到上的调用机制,并讨论了如何在实际应用中使用多个装饰器进行权限验证。此外,还介绍了如何创建带有参数的装饰器,特别是`required_types`装饰器,用于检查函数参数类型。
摘要由CSDN通过智能技术生成

一、多个装饰器的执行顺序

前面我们说到了装饰其的用法,以及他的作用;可是在工作中我们经常能看到装饰器可能不止使用一次,在同一个函数下我们有可能加上好几个装饰器,那他们的运行机制:

例:

def decorator_a(func):
    print('count 1')
    def inner_a(*args, **kwargs):
        print('count 2')
        return func(*args, **kwargs)
    return inner_a

def decorator_b(func):
    print('count 3')
    def inner_b(*args, **kwargs):
        print('count 4')
        return func(*args, **kwargs)
    return inner_b

# 当有多个装饰器时, 从下到上调用装饰器;
@decorator_b   #  f =  decorator_b(inner_a)   # f = inner_b
@decorator_a   # f = decorator_a(f)    # f = inner_a
def f(x):
    print('Get in f')
    return x * 2

f(1)   # inner_b(1)

我们看到了上面的结果,函数在调用装饰器时是自下向上的顺序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值