Als «python-decorators» getaggte Fragen


17
Wie erstelle ich eine Kette von Funktionsdekorateuren?
Wie kann ich in Python zwei Dekorateure erstellen, die Folgendes tun? @makebold @makeitalic def say(): return "Hello" ... was zurückkehren sollte: "<b><i>Hello</i></b>" Ich versuche nicht, HTMLdies in einer realen Anwendung zu tun - ich versuche nur zu verstehen, wie Dekorateure und Dekorationsketten funktionieren.


12
Was macht das "at" (@) -Symbol in Python?
Ich schaue mir einen Python-Code an, der das @Symbol verwendet, aber ich habe keine Ahnung, was er tut. Ich weiß auch nicht, wonach ich suchen soll, da die Suche in Python-Dokumenten oder Google keine relevanten Ergebnisse zurückgibt, wenn das @Symbol enthalten ist.


5
Klassenmethode Dekorateur mit Selbstargumenten?
Wie übergebe ich ein Klassenfeld als Argument an einen Dekorateur für eine Klassenmethode? Was ich tun möchte, ist so etwas wie: class Client(object): def __init__(self, url): self.url = url @check_authorization("some_attr", self.url) def get(self): do_work() Es beschwert sich, dass es kein Selbst gibt, um es self.urlan den Dekorateur weiterzugeben. Gibt es …


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 …

5
Wie übergebe ich zusätzliche Argumente an einen Python-Dekorateur?
Ich habe einen Dekorateur wie unten. def myDecorator(test_func): return callSomeWrapper(test_func) def callSomeWrapper(test_func): return test_func @myDecorator def someFunc(): print 'hello' Ich möchte diesen Dekorateur verbessern, um ein anderes Argument wie das folgende zu akzeptieren def myDecorator(test_func,logIt): if logIt: print "Calling Function: " + test_func.__name__ return callSomeWrapper(test_func) @myDecorator(False) def someFunc(): print 'Hello' …

5
Wie kann man die Definition der Python-Funktion mit Decorator umgehen?
Ich würde gerne wissen, ob es möglich ist, die Python-Funktionsdefinition basierend auf globalen Einstellungen (z. B. Betriebssystem) zu steuern. Beispiel: @linux def my_callback(*args, **kwargs): print("Doing something @ Linux") return @windows def my_callback(*args, **kwargs): print("Doing something @ Windows") return Wenn dann jemand Linux verwendet, wird die erste Definition von my_callbackverwendet und …
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.