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

系统函数怎么用装饰器

定义一个装饰器后,这样调用:

@log 

 abs(-8)

报语法错误

正在回答

2 回答

装饰器使用@是一个语法糖,是f=log(f)的简写,而且这个语法只能使用在函数定义处。如果你想在系统函数上使用装饰器,可以直接写

abs = log(abs)
abs(-8)

 你可以看看我的验证:

>>> def pri(f):
        def wrap(i):
            print('hi...')
            return f(i)
        return wrap
>>> abs(-3)
3
>>> abs = pri(abs)
>>> abs(-3)
hi...
3
>>>


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

装饰器需要在函数定义的时候使用,你这里@log下面没有跟函数定义,而是直接调用了函数,所以就报错啊

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

举报

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

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

进入课程

系统函数怎么用装饰器

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信