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

自己写的跑不出来,帮忙找下原因

import time, functools
def performance(unit):
    def perf_decorator(f):
      @functools.wraps(f)
      def wrapper(*args, **kw):
         t1 = time.time()
         r = f(*args, **kw)
         t2 = time.time()
         t = (t2 - t1) * 1000 if unit=='ms' else (t2 - t1)
         print 'call %s() in %f %s' % (f.__name__,t,unit)
         return r
      return wrapper
   return perf_decorator

@performance('ms')
def factorial(n):
    return reduce(lambda x,y: x*y, range(1, n+1))
print factorial.__name__


正在回答

3 回答

简单做法就是把光标移到def per_decrator(f):后,回车 然后写入return 语句保证不会错

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

缩进没有对齐,return perf_decorator 和def perf_decorator 不在一个代码块里面

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

https://img1.sycdn.imooc.com//5b98dcf70001856109250559.jpg return perf_decorator这个前面需要再加一个空格

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

举报

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

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

进入课程

自己写的跑不出来,帮忙找下原因

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