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

r = f(*args, **kw)

请问r = f(*args, **kw)是什么意思

正在回答

2 回答

*args,**kw是自动匹配数组和字典。参见http://blog.csdn.net/anhuidelinger/article/details/10011013。

通过t2-t1的时间差,求出的就是我们调用这个函数的时间,计算为0.689030 ms

在这个地方,带入的应该factorial(10)中10这个数值,所以我觉得可以去掉**kw,我运行后,结果效果的确一样,时间变为0.686884 ms。大胆猜测下,10其实只是一个数值,所以也不用数组匹配,所以可以使用变量名a代替,时间变更为0.673056 ms。

而r = f(*args, **kw)为什么会把factorial(10)带入,我觉的应该在第二个函数定义里面,调用了这个函数,f其实就是factorial。

至于为什么是调用到f这个函数的位置,而不是unit,我也不能很好解释,应该是因为@performance('ms')中‘ms’匹配了unit,所以factorial()匹配了f()么,这一点可能就是这一节的重点了。

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

a412739861

重复阅读这一节和上面一节,发现的确最后这段就是本节所要讲的重点,即@performance(unit)f(),多重复读,并且看了上一节的问答有感。 第一个回答是没看答案前的解释,以为是你要问为什么要运行. PS:不能删除修改有点麻烦.....
2015-04-01 回复 有任何疑惑可以回复我~

运行一次f(*args,**kw)即题目最后的代码。主要是为了在前面插入t1 = time.time(),后面插入t2 = time.time(),通过t2-t1得出运行函数的时间差。

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

举报

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

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

进入课程

r = f(*args, **kw)

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