Python合并多個(gè)裝飾器小技巧
django程序,需要寫很多api,每個(gè)函數(shù)都需要幾個(gè)裝飾器,例如
@csrf_exempt
@require_POST
def foo(request):
pass
既然那么多個(gè)方法都需要寫2個(gè)裝飾器,或者多個(gè),有啥辦法把多個(gè)合并成一行呢?
上面的函數(shù)執(zhí)行過程應(yīng)該是
csrf_exempt(require_POST(foo))
修改成
def compose(*funs):
def deco(f):
for fun in reversed(funs):
f = fun(f)
return f
return deco
函數(shù)改寫成
@compose(csrf_exempt, require_POST)
def foo(request):
pass
參考:
Can I combine two decorators into a single one in Python
相關(guān)文章
Jupyter Notebook 文件默認(rèn)目錄的查看以及更改步驟
這篇文章主要介紹了Jupyter Notebook 文件默認(rèn)目錄的查看以及更改步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04用Python調(diào)用win命令行提高工作效率的實(shí)例
今天小編就為大家分享一篇用Python調(diào)用win命令行提高工作效率的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python循環(huán)語句之while循環(huán)和for循環(huán)詳解
在Python中,循環(huán)語句用于重復(fù)執(zhí)行一段代碼,直到滿足某個(gè)條件為止,在Python中,有兩種主要的循環(huán)語句:for循環(huán)和while循環(huán),本文就來給大家介紹一下這兩個(gè)循環(huán)的用法,需要的朋友可以參考下2023-08-08pyenv與virtualenv安裝實(shí)現(xiàn)python多版本多項(xiàng)目管理
這篇文章主要介紹了pyenv與virtualenv安裝實(shí)現(xiàn)python多版本多項(xiàng)目管理過程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08基于python編寫的五個(gè)拿來就能用的炫酷表白代碼分享
七夕快到了,所以本文小編將給給大家介紹五種拿來就能用的炫酷表白代碼,無限彈窗表白,愛心發(fā)射,心動(dòng)表白,玫瑰花等表白代碼,需要的小伙伴快來試試吧2023-08-08python?實(shí)現(xiàn)?pymysql?數(shù)據(jù)庫(kù)操作方法
這篇文章主要介紹了python實(shí)現(xiàn)pymysql數(shù)據(jù)庫(kù)操作方法,文章基于python的相關(guān)內(nèi)容展開對(duì)?pymysql?數(shù)據(jù)庫(kù)操作方法的詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-04-04python中的print()函數(shù)end=' '的使用及說明
這篇文章主要介紹了python中的print()函數(shù)end=' '的使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02使用Python設(shè)置tmpfs來加速項(xiàng)目的教程
這篇文章主要介紹了使用Python設(shè)置tmpfs來加速項(xiàng)目的教程,文中給出方法使用Python腳本將tmpfs保存于內(nèi)存中的程序存儲(chǔ)到本地硬盤上,需要的朋友可以參考下2015-04-04python查詢MySQL將數(shù)據(jù)寫入Excel
這篇文章主要介紹了python如何查詢MySQL將數(shù)據(jù)寫入Excel,幫助大家利用python高效的辦公,感興趣的朋友可以了解下2020-10-10