课程
/后端开发
/Python
/python进阶
是有什么特别的用途吗
2018-08-04
源自:python进阶 2-12
正在回答
def performance(f):
def f1(*args):
t1 = time.time()
f(*args)
t2 = time.time()
print 'call %s() in %fs' % (f.__name__,(t2-t1))
return f(*args)
return f1
我就是直接返回f(*args)的,老师的答案输出的时间除了函数调用时间还多了个运行时间
925755208
是这么回事:performance()接收了f函数,返回fn函数,fn函数除了计算了一下调用f耗费的时间之外,还要把f调用的结果返回,否则最后一句print就打印不出来结果了。
你说直接返回f(*args,**kw),就是return f(*args,**kw)?就是再调用一次f呗?这不是重复计算了吗
能直接返回,但是直接return后函数就会直接结束,后面的print函数不会输出,所以这里先把值储存起来,打印完之后再返回
qq_我我我_2
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计