python裝飾器的使用

2022-06-18 05:27:07 字數 648 閱讀 7880

借用裝飾器,我們可以批量的對老的函式進行改造或擴充套件老函式功能,比如需要對函式的接收引數進行過濾,flash的url路由功能就是使用的這個方式

def

dropoushu(): # 這一層函式可以去掉,如果去掉了,則使用@checkjiou這種方式呼叫該裝飾器

defcheckjiou(func):

tmp_list =args[0]

result_list = [i for i in tmp_list if i%2 ==0] #

對calculate函式的入參list中的奇數過濾掉

return func(*tuple([result_list])) #

result_list=[0, 2, 4, 6]

return

return

checkjiou

@dropoushu()

defcalculate(a_list):

print a_list #

[0, 2, 4, 6]

if__name__ == "

__main__":

calculate([i

for i in range(7)]) #

此處的資料應該是[0, 1, 2, 3, 4, 5, 6]

python 裝飾器的使用

使用裝飾器將函式作為引數,最後再返回乙個引數,簡單來說就是在不修改原函式的 上對原函式新增新的功能。1 在原函式中新增乙個裝飾器 原函式 def sayhello print hello,world sayhello 新增裝飾器後 import functools def decorator fun...

python裝飾器的使用

在class內部,可以有屬性和方法,而外部 可以通過直接呼叫例項變數的方法來運算元據,這樣,就隱藏了內部的複雜邏輯。但是,從前面student類的定義來看,外部 還是可以自由地修改乙個例項的name score屬性 如果要讓內部屬性不被外部訪問,可以把屬性的名稱前加上兩個下劃線 在python中,例...

Python裝飾器的使用

本文介紹的是python裝飾器 的使用,分三部分記錄裝飾器,旨在為之後複習保留學習筆記。python裝飾器在沒有改變原始函式呼叫方式的同時,在原始函式的前後增加功能,滿足開放封閉原則。目錄 1.裝飾器的固定模板 2.帶引數的裝飾器模板 3.多個裝飾器函式裝飾乙個函式 裝飾器的固定模板 def inn...