Seite 1 von 1

Ich brauche mal Unterricht @ Decorator

Verfasst: Mittwoch 20. Februar 2013, 22:10
von Manchotix
Hallo zusammen,

ich bin gerade dabei mir eine Klasse zusammen zu schrauben für Bottle und wollte bei einer Funktion auf das wunderbare an Python und seine Decoratoren zugreifen.
Dass ich mir das tutorial durch gelesen habe ist was her, also nochmal lesen und sehen das ich es irgend wie nicht verstehe.
Deswegen meine Frage ob mir jemand das Thema erklären könnte und an einem Beispiel erklären könnte wie man so ein Decorator macht.

Ich hoffe ich habe es jetzt nicht zu schlecht erklärt was mein Problem ist.

mfg Manchotix

Re: Ich brauche mal Unterricht @ Decorator

Verfasst: Mittwoch 20. Februar 2013, 22:28
von BlackJack
@Manchotix: Die Frage ist irgendwie ein wenig unspezifisch. Die Decorator-Syntax ist bloss syntaktischer Zucker für das hier:

Code: Alles auswählen

@some_expression
def spam():
    pass  # some code

# ist das selbe wie:

def spam():
    pass  # some code

spam = some_expression(spam)
Das war's auch schon. Für `some_expression` kann ein beliebiger Ausdruck stehen, der als Ergebnis eine Funktion, oder allgemeiner ein aufrufbares Objekt, liefert, welches die Funktion übergeben bekommt, damit irgend etwas machen kann, und selber wieder eine Funktion zurück gibt, die dann an den originalen Funktionsnamen gebunden wird.