- 相關(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)文章:
教你家居如何插花小技巧08-23
該如何合并多個HTML 幫助文件09-18
excel合并多個文件的方法05-27
小編教你如何掌控黑白攝影的技巧方法06-13
租房裝飾小技巧10-03
紋繡過程的幾個小技巧09-11
演講時的幾個小技巧01-01
臥室墻面裝飾小技巧08-01
PPT多個對象對齊有什么小技巧呢08-04