Heim  >  Artikel  >  Backend-Entwicklung  >  Ist es geeignet, mehrere Dekoratoren mit Python zu kombinieren?

Ist es geeignet, mehrere Dekoratoren mit Python zu kombinieren?

伊谢尔伦
伊谢尔伦Original
2017-06-28 13:24:382019Durchsuche

In diesem Artikel werden hauptsächlich Python-Tipps zum Zusammenführen mehrerer Dekoratoren vorgestellt. Dieser Artikel verwendet eine neu geschriebene Methode zum Aufrufen der -Funktion , um mehrere Dekoratoren in einer Zeile und einer Funktion zusammenzuführen Wer es braucht, kann auf das Programm

django zurückgreifen. Für jede Funktion sind mehrere Dekoratoren erforderlich, z. B.

@csrf_exempt  
@require_POST  
def  foo(request):  
    pass

Darin Bei mehreren Methoden müssen zwei oder mehr Dekoratoren geschrieben werden. Gibt es eine Möglichkeit, mehrere Dekoratoren in einer Zeile zu kombinieren?
Der Ausführungsprozess der obigen Funktion sollte

sein. Der Code lautet wie folgt:

csrf_exempt(require_POST(foo))

wird geändert in

def compose(*funs):  
    def deco(f):  
        for fun in reversed(funs):  
            f = fun(f)  
        
return f  
return deco

Die Funktion wird umgeschrieben als

@compose(csrf_exempt, require_POST)  
def foo(request):  
    pass

Das obige ist der detaillierte Inhalt vonIst es geeignet, mehrere Dekoratoren mit Python zu kombinieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn