python 基礎篇 12 裝飾器進階

來源:互聯網
上載者:User

標籤:rap   ima   nts   bubuko   聲明   war   nbsp   info   分享   

本節主要內容:
1. 通?裝飾器回顧
2. 函數的有?資訊
3. 帶參數的裝飾器
4. 多個裝飾器同時裝飾?個函數

?. 通?裝飾器的回顧
開閉原則: 對增加功能開放. 對修改代碼封閉
裝飾器的作?: 在不改變原有代碼的基礎上給?個函數增加功能
通?裝飾器的寫法:

執行過程:

其實執行  target_func()就是執行inner函數.  inner函數會先執行目標函數之前的代碼,然後執行目標函數,之後再執行目標函數之後的代碼.

如何擷取函數的有用資訊:

函數名.__name__可以查看函數名字

函數名.__doc__可以查看函數文檔注釋

 

雖然調用的是target_func函數,但是列印出來的卻是inner函數,這個難免會給我誤解,所以我們要改回去

 

PS: *args和**kwargs什麼時候打散, 什麼時候彙總
1. 接收參數的時候是彙總, 參數聲明
2. 傳遞參數的時候是打散, 給函數傳遞實參

 

三--裝飾器傳參

執行順序:  先執行wrapper_out(False),  傳回值是wrapper,然後再@wrapper   還是和之前的裝飾器一樣,一次執行.

 

 四. 多個裝飾器裝飾同?個函數
先讀?下這樣?個代碼.

 

這個順序可以自己捋捋      先執行裝飾器1,  然後執行裝飾器2

 

python 基礎篇 12 裝飾器進階

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.