求教為什么這個會報錯??!
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)這樣的就不行么?
2019-03-06
%(
f.__name__,t2
-
t1,unit) 要加上括號?
f 跟 fn不是一個函數啊
2019-03-22
最后一個百分號后面的三個參數需要用括號括起來