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

python3 decorator 求助

python3 decorator 求助

三国纷争 2019-04-16 20:27:01
#!pythondeflogger(func):definner(*args,**kwargs):print("Argumentsare:%s,%s"%args,kwargs)returnfunc(*args,**kwargs)returninner@loggerdeffoo1(x,y=1):returnx*y@loggerdeffoo2():return2foo1(5,4)foo1(3,y="alex")foo2()出错是:Argumentsare:5,4{}Traceback(mostrecentcalllast):File".\decorator.py",line18,infoo1(3,y="alex")File".\decorator.py",line5,ininnerprint("Argumentsare:%s,%s"%args,kwargs)TypeError:notenoughargumentsforformatstring我用的python是3.4.0
查看完整描述

2 回答

?
森林海

TA贡献2011条经验 获得超2个赞

这个其实跟python3和decorator关系都不太大,是因为print用法有些错误,应该写作如下形式,注意括号。
print("Argumentsare:%s,%s"%(args,kwargs))
                            
查看完整回答
反对 回复 2019-04-16
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

自己找到了答案,原来print函数百分号后面的要使用tuple,应该是下面这样才对。
print("Argumentsare:%s,%s"%(args,kwargs))
另外,查到说现在百分号的形式不太使用了,应该用
print("Argumentsare:{0},{1}".format(str(args),str(kwargs)))
更好
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 490 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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