課程
/后端開發
/Python
/python進階
請問r = f(*args, **kw)是什么意思
2015-03-19
源自:python進階 2-13
正在回答
*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()么,這一點可能就是這一節的重點了。
a412739861
運行一次f(*args,**kw)即題目最后的代碼。主要是為了在前面插入t1 = time.time(),后面插入t2 = time.time(),通過t2-t1得出運行函數的時間差。
舉報
學習函數式、模塊和面向對象編程,掌握Python高級程序設計
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-04-01
*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()么,這一點可能就是這一節的重點了。
2015-04-01
運行一次f(*args,**kw)即題目最后的代碼。主要是為了在前面插入t1 = time.time(),后面插入t2 = time.time(),通過t2-t1得出運行函數的時間差。