- 相關(guān)推薦
Python如何合并多個裝飾器?教你幾個小技巧
django程序,需要寫很多api,每個函數(shù)都需要幾個裝飾器,例如
復(fù)制代碼 代碼如下:
@csrf_exempt
@require_POST
def foo(request):
pass
既然那么多個方法都需要寫2個裝飾器,或者多個,有啥辦法把多個合并成一行呢?
上面的函數(shù)執(zhí)行過程應(yīng)該是
復(fù)制代碼 代碼如下:
csrf_exempt(require_POST(foo))
修改成
復(fù)制代碼 代碼如下:
def compose(*funs):
def deco(f):
for fun in reversed(funs):
f = fun(f)
return f
return deco
函數(shù)改寫成
復(fù)制代碼 代碼如下:
@compose(csrf_exempt, require_POST)
def foo(request):
pass
參考:
Can I combine two decorators into a single one in Python
【Python如何合并多個裝飾器?教你幾個小技巧】相關(guān)文章:
教你如何學(xué)好工程制圖12-07
教你實用的社交口才技巧09-24
教你如何屏蔽硬盤壞道07-16
打網(wǎng)球的幾個小細節(jié)05-09
插花的幾個基本技巧(通用7篇)06-10
軍訓(xùn)小技巧10-13
登山教你如何正確選擇登山杖10-21
液晶顯示器保養(yǎng)技巧07-16
日常卸妝小技巧09-03
新生軍訓(xùn)小技巧09-28