課程
/后端開發
/Python
/python進階
@performance是factorial=performance(factorial)嗎?
那里面的 return fn是返回fn函數,返回的fn函數不是只有調用了才會執行嗎,為什么會直接得出結果呢?
2019-07-29
源自:python進階 2-12
正在回答
import?time def?performance(f):??????#3333333333扔到這來 ????def?fn(*args,?**kw):?#5555555555這里取傳入函數的參數 ????????t1?=?time.time()??#6666666666記錄當前時間 ????????r?=?f(*args,?**kw)?#77777777777777這里是調用傳入的那個函數,賦予r ????????t2?=?time.time()??#8888888888888888記錄結束時間 ????????print?'call?%s()?in?%fs'?%?(f.__name__,?(t2?-?t1))???#99999999999999打印時間差 ????????return?r????????????#111111100000000000000原函數輸出 ????return?fn???????????????#444444444直接返回 @performance????????????????#22222222222把下面這個函數扔進@后面這個函數里 def?factorial(n):???????????#11111111111這是自定義的一個函數 ????return?reduce(lambda?x,y:?x*y,?range(1,?n+1)) print?factorial(10)
nice
太棒了
舉報
學習函數式、模塊和面向對象編程,掌握Python高級程序設計
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-07-31
2019-09-18
nice
2019-08-25
太棒了