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

请问答案中的代码,第二行中的f,和第五行中的f,请问这个f函数具体是什么啊,没有关于f函数的定义啊,只是被调用了,关于f函数的具体执行是什么呀?一脸懵逼吗,求教。

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))
       return r
   return fn

@performance
def factorial(n):
   return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)

正在回答

2 回答

@performance代表了一段代码,这段代码是

factorial = performance(factorial)

2-11再看几遍

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

慕用9571995 提问者

不好意思,本人基础可能不太好,装饰器这一节总感觉有点难以理解。谢谢你的回答。
2017-08-27 回复 有任何疑惑可以回复我~

f 函数就是 @performance 下的 factorial()

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

慕用9571995 提问者

那么在调用factorial()函数时,不需要写全称吗?直接调用f算是简称吗。这样可以吗
2017-08-16 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

请问答案中的代码,第二行中的f,和第五行中的f,请问这个f函数具体是什么啊,没有关于f函数的定义啊,只是被调用了,关于f函数的具体执行是什么呀?一脸懵逼吗,求教。

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号