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

报错in <module> @log('DEBUG')

def log(f):  #在这里还是只传一个参数
   def fn(x):
       print 'call' + f.__name__ + '()...'
       return f(x)
   return fn

#传入INFO 与 DEBUG 参数
@log('DEBUG')  然后就会报错,这是为什么啊

正在回答

4 回答

哦,抱歉,没有出错,老师在后面对log函数进行了修改的 可以收prefix(前缀),@log('DEBUG')这个时候调用的log不仅仅是

def log(f):  
   def fn(x):
       print 'call' + f.__name__ + '()...'
       return f(x)
   return fn

这个东西还有一层接受前缀的函数

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

f.__name__是获取函数名,'DEBUG'是str,我学到这里也开始慌 了,是这节的教程出错了?

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

你单独一个@log('DEBUG')?

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

def log(f)中的f指的是要传入的函数,decorator函数是以函数作为参数的,如果想要传入prefix参数,可以参考装饰器的完善那一节的内容

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

举报

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

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

进入课程

报错in <module> @log('DEBUG')

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

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

帮助反馈 APP下载

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

公众号

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