国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python合并多個裝飾器小技巧

2020-02-23 00:53:28
字體:
供稿:網(wǎng)友

django程序,需要寫很多api,每個函數(shù)都需要幾個裝飾器,例如
代碼如下:
@csrf_exempt 
@require_POST 
def  foo(request): 
    pass 

既然那么多個方法都需要寫2個裝飾器,或者多個,有啥辦法把多個合并成一行呢?
上面的函數(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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 邹城市| 休宁县| 师宗县| 鸡东县| 墨竹工卡县| 眉山市| 饶河县| 巴马| 库尔勒市| 恩平市| 天镇县| 琼海市| 仁化县| 景谷| 沾益县| 昌都县| 海安县| 固安县| 铜梁县| 大关县| 陇西县| 揭东县| 阜宁县| 贵州省| 顺义区| 中方县| 宣武区| 南京市| 民县| 郧西县| 新乡市| 尚义县| 五原县| 崇文区| 乐业县| 台南县| 荣成市| 新宁县| 六枝特区| 阳曲县| 亚东县|