Als «decorator» getaggte Fragen

Decorator ist ein objektorientiertes Entwurfsmuster, mit dem vorhandene Klassen dynamisch verhalten werden können. Es ist eines der strukturellen Entwurfsmuster der Gang of Four.


11
Python-Dekorateure im Unterricht
Kann man so etwas schreiben wie: class Test(object): def _decorator(self, foo): foo() @self._decorator def bar(self): pass Dies schlägt fehl: self in @self ist unbekannt Ich habe auch versucht: @Test._decorator(self) was auch fehlschlägt: Test unbekannt Ich möchte einige Instanzvariablen im Dekorator vorübergehend ändern und dann die dekorierte Methode ausführen, bevor ich …
140 python  class  decorator  self 



8
Wie dekoriere ich eine Klasse?
Gibt es in Python 2.5 eine Möglichkeit, einen Dekorator zu erstellen, der eine Klasse dekoriert? Insbesondere möchte ich einen Dekorator verwenden, um ein Element zu einer Klasse hinzuzufügen und den Konstruktor so zu ändern, dass er einen Wert für dieses Mitglied annimmt. Suchen Sie nach etwas wie dem folgenden (das …

7
Dekorateure in der Python-Standardbibliothek (@deprecated speziell)
Ich muss Routinen als veraltet markieren, aber anscheinend gibt es keinen Standard-Bibliotheksdekorateur für veraltet. Ich kenne die Rezepte dafür und das Warnmodul, aber meine Frage ist: Warum gibt es keinen Standard-Bibliotheksdekorateur für diese (allgemeine) Aufgabe? Zusätzliche Frage: Gibt es überhaupt Standarddekorateure in der Standardbibliothek?
127 python  decorator 



6
Bewahrung von Unterschriften dekorierter Funktionen
Angenommen, ich habe einen Dekorateur geschrieben, der etwas sehr Allgemeines tut. Beispielsweise können alle Argumente in einen bestimmten Typ konvertiert, eine Protokollierung durchgeführt, eine Memoisierung implementiert usw. werden. Hier ist ein Beispiel: def args_as_ints(f): def g(*args, **kwargs): args = [int(x) for x in args] kwargs = dict((k, int(v)) for k, …
111 python  decorator 

8
Python Memoising / Deferred Lookup Property Decorator
Kürzlich habe ich eine vorhandene Codebasis durchlaufen, die viele Klassen enthält, in denen Instanzattribute in einer Datenbank gespeicherte Werte widerspiegeln. Ich habe viele dieser Attribute überarbeitet, damit ihre Datenbanksuchen verschoben werden, d. H. nicht im Konstruktor initialisiert werden, sondern erst beim ersten Lesen. Diese Attribute ändern sich nicht über die …
109 python  decorator 

12
Kann ein Dekorateur einer Instanzmethode auf die Klasse zugreifen?
Hallo, ich habe ungefähr so ​​etwas wie das Folgende. Grundsätzlich muss ich von einem Dekorator, der für die Instanzmethode in ihrer Definition verwendet wird, auf die Klasse einer Instanzmethode zugreifen. def decorator(view): # do something that requires view's class print view.im_class return view class ModelA(object): @decorator def a_method(self): # do …
108 python  decorator 

5
Webpack Babel 6 ES6 Dekorateure
Ich habe ein Projekt in ES6 mit Webpack als Bundler geschrieben. Die meisten Transpilierungen funktionieren einwandfrei, aber wenn ich versuche, Dekorateure irgendwo einzuschließen, wird folgende Fehlermeldung angezeigt: Decorators are not supported yet in 6.x pending proposal update. Ich habe mir den Babel Issue Tracker angesehen und konnte dort nichts finden. …

1
Ausführungsreihenfolge des Dekorateurs
def make_bold(fn): return lambda : "<b>" + fn() + "</b>" def make_italic(fn): return lambda : "<i>" + fn() + "</i>" @make_bold @make_italic def hello(): return "hello world" helloHTML = hello() Ausgabe: "<b><i>hello world</i></b>" Ich verstehe grob über Dekorateure und wie es mit einem davon in den meisten Beispielen funktioniert. In …

3
Feststellen, ob der Root-Logger in Python auf DEBUG-Ebene eingestellt ist?
Wenn ich das Protokollierungsmodul mit einem Befehlszeilenparameter wie diesem auf DEBUG setze: if (opt["log"] == "debug"): logging.basicConfig(level=logging.DEBUG) Wie kann ich später feststellen, ob der Logger auf DEBUG eingestellt war? Ich schreibe einen Dekorateur, der eine Funktion zeitlich festlegt, wenn das True-Flag an ihn übergeben wird. Wenn kein Flag angegeben wird, …

12
Wie erstelle ich einen Python-Dekorator, der mit oder ohne Parameter verwendet werden kann?
Ich möchte einen Python-Dekorator erstellen, der entweder mit Parametern verwendet werden kann: @redirect_output("somewhere.log") def foo(): .... oder ohne sie (zum Beispiel um die Ausgabe standardmäßig auf stderr umzuleiten): @redirect_output def foo(): .... Ist das überhaupt möglich? Beachten Sie, dass ich nicht nach einer anderen Lösung für das Problem der Umleitung …
84 python  decorator 

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.