亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求教為什么這個會報錯??!

import?time
def?performance(unit):
????t1=time.time()????
????def?decorator(f):????????????????
????????def?fn(*args,?**kw):????????????
????????????r=f(*args,**kw)????????????
????????????t2=time.time()????????????
????????????print?'call?%s()?in?%d?%s'?%f.__name__,t2-t1,unit????????????
????????????return?r????????
????????return?fn????
????return?decorator??
??????????
????@performance('ms')
????def?factorial(n):????
????????return?reduce(lambda?x,y:?x*y,?range(1,?n+1))
????print?factorial(10)
Traceback?(most?recent?call?last):
??File?"index.py",?line?20,?in?
????print?factorial(10)
??File?"index.py",?line?10,?in?fn
????print?'call?%s()?in?%d?%s'?%f.__name__,t2-t1,unit
TypeError:?not?enough?arguments?for?format?string

另外裝飾器里為什么一定要插r=f(*args,**kw)這句?而且我不用無參數標識符,用r=f(n)這樣的就不行么?

正在回答

2 回答

%(f.__name__,t2-t1,unit) 要加上括號?

f 跟 fn不是一個函數啊

2 回復 有任何疑惑可以回復我~
print?'call?%s()?in?%d?%s'?%f.__name__,t2-t1,unit

最后一個百分號后面的三個參數需要用括號括起來

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

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

求教為什么這個會報錯??!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號