亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么帶參數的裝飾器要加多一個函數?。垦b飾器好像有時并不是那么好用?

代碼是運出來了,但是我壓根就沒懂為什么加多一個函數就可以在打印函數名的時候有后綴ms,難道是通過疊加函數并返回新的函數達到更新函數的作用?那為什么要不停的疊加函數呢?干脆直接編寫新的函數不是更快,因為好像真正起作用的 :

t = (t2 - t1) * 1000 if unit=='ms' else (t2 - t1)?

print 'call',f.__name__ +'()',t,unit

這兩步還是要重新編寫???!

這是不是說明“裝飾器”有時并不好用?

這節課看不懂是不是要重新補一下閉包的知識?(雖然我已經看了好幾遍閉包了,但這節課還是糊里糊涂的。)

希望這節課看懂的同學可以教教小白,ε=(′ο`*)))唉

https://img1.sycdn.imooc.com//5c3c4ecf0001213506200656.jpg

正在回答

4 回答

就是不用重新把所有的代碼寫一遍了,多少還是要寫一點東西,要不怎么知道怎么添加的新功能,至于有的想不明白看不懂可以先做好標記往下看,回過頭來可能會好一點

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

慕容7012403 提問者

好的,謝謝你的回答,繼續往下看真的很重要,尤其對于堅持學習來說尤為重要
2019-03-09 回復 有任何疑惑可以回復我~

想要實現一個功能,如果不用閉包,就是一層函數。

如果加上閉包,保護內層函數,那就套一層函數。


如果用裝飾器,有一層需要傳真正的函數作為參數,有一層需要傳遞真正的函數的參數作為參數,那就一共套兩層。

如果裝飾器也有參數要傳進去,那就再套一層。

2 回復 有任何疑惑可以回復我~

裝飾模式你聽說過嗎。。。。

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

函數嵌套,使得最終實現的效果和無參裝飾器一樣,即通過返回一個裝飾器使得傳入參數變成了一個固定值

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

慕容7012403 提問者

那請問裝飾器的作用是方便修改程序嗎?不太理解嵌套函數的作用是什么,最終不是還是要修改fn函數,達到添加單位的作用嗎?為什么不直接修改函數,一步到位呢?
2019-01-15 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

為什么帶參數的裝飾器要加多一個函數啊?裝飾器好像有時并不是那么好用?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號