Heim  >  Artikel  >  Backend-Entwicklung  >  So fügen Sie einer Funktion in Python mehrere Dekoratoren hinzu

So fügen Sie einer Funktion in Python mehrere Dekoratoren hinzu

anonymity
anonymityOriginal
2019-05-24 15:10:074190Durchsuche

So fügen Sie einer Funktion in Python mehrere Dekoratoren hinzu: Sie können @ vor dem Funktionsnamen verwenden, um Dekoratoren einzeln hinzuzufügen, z. B. [@decorator1 @decorator2]. Dekoratoren können wie Objekte einer Variablen zugewiesen oder in anderen Funktionen definiert werden.

So fügen Sie einer Funktion in Python mehrere Dekoratoren hinzu

Funktionen in Python sind Objekte, die nacheinander mit @ vor dem Funktionsnamen hinzugefügt werden können Von oben nach unten muss der spezifische Vorgangsprozess im Funktionsdekorator ausgeführt werden.

Zuallererst wissen wir, dass Funktionen Objekte sind, sodass Objekte einer Variablen zugewiesen oder in anderen Funktionen definiert werden können.

Dasselbe gilt auch für Dekoratoren. In diesem Beispiel werden zwei Dekoratoren angepasst und dann werden zwei Dekoratoren zur Funktion test() hinzugefügt, und das laufende Ergebnis ist normal.

#!/usr/bin/env python  
#coding:utf-8  
def decorator1(func):  
    def wrapper():  
        print 'hello python 之前'  
        func()  
    return wrapper  
  
def decorator2(func):  
    def wrapper():  
        func()  
        print 'hello python 之后'  
    return wrapper  
 
@decorator1  
@decorator2  
def test():  
    print 'hello python!'  
  
test()

Laufergebnis:

hello python 之前
hello python!
hello python 之后

Das obige ist der detaillierte Inhalt vonSo fügen Sie einer Funktion in Python mehrere Dekoratoren hinzu. 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