python学习笔记之有参装饰器

零、无参装饰器补充(如何伪装的一模一样?)

python帮你写好了,直接用就行!
实例代码:

from functools import wraps
def outter(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        res = func(*args, **kwargs) # res=index(1,2)
        return res?

一、有参装饰器

1.1 什么是有参装饰器?

能够给wrapper传入除了func之外的参数

1.2 为什么要有有参装饰器?

因为在无参装饰器中,由于语法糖的缘故,外层函数只能接受一个参数func,而有时候wrapper有多个参数的需求

1.3 如何实现有参装饰器?

1.3.1 完全类似于无参装饰器的第二层,再在外面套一层

语法糖变为:@最外层(第三层)函数(传入的参数1,传入的参数2,…)
执行时:先执行‘’最外层(第三层)函数(传入的参数1,传入的参数2,…)‘’,得到返回值,返回值为第二层函数的内存地址,语法糖变为:@第二层函数,之后就跟无参一样了

1.4 装饰器最多三层就够了,因为第三层可以支持传入任意多的参数

1.5 有参装饰器模板

代码如下(示例):

def 有参装饰器(x,y,z):
    def outter(func):
        def wrapper(*args, **kwargs):
            res = func(*args, **kwargs)
            return res
        return wrapper
    return outter





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值