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.
Ich würde gerne verstehen, wie die eingebaute Funktion ist property funktioniert. Was mich verwirrt ist, dass propertyes auch als Dekorateur verwendet werden kann, aber es braucht nur Argumente, wenn es als eingebaute Funktion verwendet wird und nicht, wenn es als Dekorateur verwendet wird. Dieses Beispiel stammt aus der Dokumentation : …
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.
Ich sehe Muster wie def __init__(self, x, y, z): ... self.x = x self.y = y self.z = z ... ziemlich häufig, oft mit viel mehr Parametern. Gibt es eine gute Möglichkeit, diese Art von langwieriger Wiederholung zu vermeiden? Sollte die Klasse namedtuplestattdessen erben ?
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 …
Ich interessiere mich für die Verwendung @propertyin Python. Ich habe die Python-Dokumente gelesen und das Beispiel dort ist meiner Meinung nach nur ein Spielzeugcode: class C(object): def __init__(self): self._x = None @property def x(self): """I'm the 'x' property.""" return self._x @x.setter def x(self, value): self._x = value @x.deleter def x(self): …
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 …
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' …
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 …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.