偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

你可能不知道的Python裝飾器

開發(fā) 后端
你可能不知道的Python裝飾器, 今天才發(fā)現(xiàn)裝飾器的另一種用法,下面就先上代碼。

 [[283551]]

今天才發(fā)現(xià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) 

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

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

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

 

  1. [<function foo at 0x10bb05ea0>, <function foo1 at 0x10bb05d90>, <function foo3 at 0x10bb05f28>] 

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

 

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

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

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

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

責(zé)任編輯:華軒 來(lái)源: Python學(xué)習(xí)開發(fā)
相關(guān)推薦

2012-11-23 10:57:44

Shell

2020-01-29 19:40:36

Python美好,一直在身邊Line

2021-01-05 11:22:58

Python字符串代碼

2023-02-27 09:20:24

絕對(duì)定位CSS

2023-01-29 09:46:47

Dialog彈窗模態(tài)

2015-08-13 09:03:14

調(diào)試技巧

2019-11-20 10:25:06

sudoLinux

2021-07-12 07:59:06

安全 HTML 屬性

2014-12-08 10:39:15

2021-12-17 00:10:00

ChromeDevtools功能

2020-03-05 11:10:18

Left join數(shù)據(jù)庫(kù)MySQL

2024-03-04 00:00:00

Kubernetes技巧API

2022-09-20 11:58:27

NpmNode.js

2010-07-29 09:18:31

Linux用戶

2016-09-05 13:14:11

2015-09-16 10:48:57

Python庫(kù)

2018-05-10 11:50:13

Docker容器冷知識(shí)

2010-07-26 13:24:11

2011-02-14 16:11:44

2020-05-09 08:48:21

JavaScript原生方法代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)