已采纳回答 / 5941
这就是个打印语句,中间的%s,%f分别代表字符参数和浮点参数,通过引号后面的%()来传递参数,f代表的是def perf_decorator(f):中的f,也就是你在@performance('ms') def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1))中定义的factorial函数,f.__name__好像还没讲到,不过我认为是这个函数的名字,即‘factorial’,应该是python提供的。unit则是@pe...
2015-07-18
最赞回答 / qq_忆_4
return f(x)是返回原来函数的返回值...fn是一个新函数...return fn是返回新函数..新函数 新操作 调用旧函数是一个这样的形式吧..也就是说这样的话就扩充了旧函数的功能了..执行过程应该是这样...先log(f)得到新函数的地址..之后调用新函数就完成了对旧函数的扩充...(这个地址的说法来源于C语言,理解的不对的地方还请谅解..菜鸟一只)
2015-07-17
最赞回答 / 5941
在本题你这么看好像是没什么差别,但是你放到上一题就可以看出差别了。没有return r,你调用factorial()的结果是None,因为没有返回值回来。有了return r,才能输出factorial计算的阶乘答案。本题没差别的原因是本题中并没有调用factorial函数,而是只取了它的__name__这个属性。
2015-07-13
最新回答 / 码农的自我修养
(f.__name__, t, unit)是个元组,%s可以理解成对应参数'call %s() in %f %s' % (f.__name__, t, unit) 也可以这样写:'call %s() in %s [%s]' % (f.__name__, time.time()-start, unit)#f.__name__是取函数名,start=time.time(),开始运算时间,unit是传入的单位。入门课程里面有个类似的,复杂表达式 那里
2015-07-12
已采纳回答 / 如果撞上假如
有的包安装的时候 需要vc 2008或者其他版本,不想安装的话可以装个插件http://www.microsoft.com/en-us/download/details.aspx?id=44266
2015-07-07
最赞回答 / JS000
当调用count()时,开始执行循环语句,i分别变成1,2,3即fs=[f(1),f(2),f(3)],因为f1,f2,f3 = count(),因此f1=f(1),f2=f(2),f3=f(3)。然后执行f1(),f2(),f3(),即分别调用三个函数,由代码可知def f(j): def g(): return j*j return g即f1=f(1)=g,所以f1()=g(),执行g函数,返回j*j,此时j=1 所以f1()=...
2015-06-30