为了账号安全,请及时绑定邮箱和手机立即绑定

关于完善decorator的一个问题

如何理解:

@functools.wraps(f)

正在回答

2 回答

没明白你的意思?

语法糖指的是一种简便的写法吧

@log中,@是装饰器,log是函数

0 回复 有任何疑惑可以回复我~

个人理解是,就和介绍一样,如果不加@functools.wraps(f) 装饰的话,把log装饰器用函数来写的话,是这样的, log(f2()) 

加装饰器的f2.__name__ 其实等于不加装饰器的log(f2()).__name__ 这其中最后调用的是log函数中的wrapper函数,返回的属性其实是这个函数的。

但是明明想要是的f2的属性,为了解决这个问题,所以内置一个functools的函数来复制属性。


    

0 回复 有任何疑惑可以回复我~
#1

zeroandzoro 提问者

我想知道的是:这个函数调运形式为什么是这样? @在我理解应该是语法糖 functool.wraps()中functool是对象,wraps是方法,(f)是变量,也就是参数, 那么前面为什么要加语法糖,是装饰器吗? 装饰器不应该是这样吗?@log
2017-07-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255533    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

关于完善decorator的一个问题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号