日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
你可能不知道的Python裝飾器

今天才發(fā)現(xiàn)裝飾器的另一種用法,下面就先上代碼:

洪洞網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。

 
 
 
  1. data_list = [] 
  2.  
  3.  
  4. def data_item(func): 
  5.     data_list.append(func) 
  6.     return func 
  7.  
  8.  
  9. @data_item 
  10. def foo(): 
  11.     return 1 
  12.  
  13.  
  14. @data_item 
  15. def foo1(): 
  16.     return 2 
  17.  
  18.  
  19. @data_item 
  20. def foo3(): 
  21.     return 3 
  22.  
  23.  
  24. def max_item(): 
  25.     result = max(i() for i in data_list) 
  26.     return result 
  27.  
  28.  
  29. if __name__ == '__main__': 
  30.     item = max_item() 
  31.     print(item) 

代碼很簡單就是,定義三個foo開頭的函數(shù),每個foo函數(shù)輸出不一樣的數(shù)字,都通過裝飾器data_item進行修飾,最后通過max_item函數(shù),執(zhí)行一系列邏輯獲取結(jié)果。

這里有個容易被忽略的點,那就是裝飾器實際是在執(zhí)行 max_item()之前就執(zhí)行了。

所以,如果你打印下data_list你會發(fā)現(xiàn)它是有值的。

 
 
 
  1. [

即列表里面已經(jīng)有三個被裝飾器修飾的函數(shù)了,然后在

 
 
 
  1. max(i() for i in data_list) 

的i()階段這三個函數(shù)執(zhí)行了,得到了結(jié)果(1,2,3),然后最后取它們的max值即3。

什么場景會用到呢,一般對于傳入一個值然后多種處理方案,選擇其中優(yōu)秀方案的時候可以考慮使用這種方法。

emmm,裝飾器還是挺有意思的。


分享標(biāo)題:你可能不知道的Python裝飾器
網(wǎng)站URL:http://m.5511xx.com/article/codjedh.html