python装饰器学习

参考链接:

如何理解Python装饰器? - 知乎

1.什么是装饰器

首先,根据链接文章学习

假设我们需要在函数运行时得到函数名称信息,通过一下方式实现

上面方式不是很理想,需要在执行任意函数时将函数作为参数传入prlog()方法中

 logging_util()方法就是装饰器,装饰器函数的语法糖可以简单快捷满足我们的需求

装饰器函数就是将函数包装在函数内,testfun()函数被包装了起来 

带参数的装饰器,在函数内部再使用函数decorator包裹一层,并在最外层函数传入level参数即可实现带参数的装饰器

一些疑问点:

为什么swrappe函数return需要(),个人理解,函数装饰器本身就是对另一个函数的修饰,需要在修饰后返回被修饰的函数func(),可以看到下面的acc()函数没有被执行

 下面正常执行

 那为什么返回wrapper又不需要()?

我个人猜测是返回函数本身不需要+()

带参数的函数装饰器如果去掉函数当中的*args **kwargs会怎样呢

下面是函数中带有*arg**kwargs的

我们删掉并运行代码,可行

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值