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

performance(f)中接收的函数f,不是应该和def 中的函数一样吗,对f进行包装呀?​

performance(f)中接收的函数f,不是应该和def 中的函数一样吗,对f进行包装呀?

正在回答

1 回答

import time


def performance(f):

    def fn(*args,**kw):

        t1=time.time()

        r=f(*args.**kw)

        t2=time.time) # 少了左括号(

        print 'call %s() in %fs'%(f.__name__,)(t2-t1)) #应该写成(f.__name__, (t2-t1))

            return r #缩进不对,应该与上一行代码开头对齐,因为这是fn函数的返回值,相比def fn(*args,**kw): 这一句缩进一次就够了。

        return fn # #缩进不对,应该与def fn(*args,**kw): 这一行代码开头对齐,因为这是performance函数的返回值。


@performance

def factorial(n):

    return reduce(lambda x,y: x*y, range(1, n+1))


print factorial(10)


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

举报

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

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

进入课程

performance(f)中接收的函数f,不是应该和def 中的函数一样吗,对f进行包装呀?​

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