Die übliche Konstrukt für einen Dekorateur in Python istPython Dekorateur über etwas anderes als def
@decorator
def function(x):
<code here>
, die
entsprichtdef function(x):
<code here>
function = decorator(function)
(Zumindest, das ist mein Verständnis ist.) Nun nehmen wir an haben eine Funktion mystery_func
, die wir nicht selbst definiert haben, aber wir möchten immer noch mit decorator
dekorieren. Können wir
@decorator
mystery_func
oder tun wir
mystery_func = decorator(mystery_func)
bekommen die gleiche Wirkung wie
@decorator
def mystery_func(args):
<code here>
Das ist nicht eine Frage erforderlich war, konnte man nur diese in kürzerer Zeit in einem interaktiven Interpreter getestet haben, als es dauerte um die Frage zu stellen. – ShadowRanger
Falls Sie keine Python-Installation haben, ist [Ideone] (http://ideone.com/) gut für nicht-interaktive Tests und [PythonAnywhere's "Try IPython" Online-Sache] (https: // www. pythonanywhere.com/try-ipython/) bietet Ihnen eine Online-IPython-Umgebung, die normalerweise sogar besser ist als ein normaler interaktiver Python-Interpreter. – user2357112
@ShadowRanger Es ist immer noch eine gültige Frage, vielleicht hat der 'OP' nichts über' Klassen'-Dekoratoren gewusst, was etwas anderes als 'def' ist – jamylak