2012-04-07 3 views

Antwort

1

Das ist die Syntax für Python decorators --Funktionen oder Methoden, die ein Objekt, sagen eine Funktion, Methode oder Klasse, und etwas ausführen können, wenn das Objekt aufgerufen wird oder wenn es ein Ergebnis zurückgibt.

0

Sie verlassen einen wichtigen Teil aus dem Beispiel. Ein ähnliches kann man in den official functools.wrap doc, und sieht aus wie zu finden:

from functools import wraps 
def my_decorator(f): 
    @wraps(f) 
    def wrapper(*args, **kwds): 
     print('Calling decorated function') 
     return f(*args, **kwds) 
    return wrapper 

In diesem Beispiel sind die Namen sind ein wenig in Bezug auf Ihrem gemischt. In diesem ist @wraps(f) schmücken die Funktion wrapper (die, die direkt danach kommt).

Es gibt eine Menge Quellen darüber, was Python Dekoratoren sind. Here ist einer von ihnen.

+0

Ich habe übersehen, dass der Dekorateur die Wrapper-Funktion dekoriert. Ich habe ein paar Beispiele codiert und jetzt ist es klar. Vielen Dank! – user1318842

+0

@ user1318842: Gern geschehen! Ich erwarte, dass du diese Antwort bald akzeptierst (http://meta.stackexchange.com/a/5235/177799). –