Könnten Sie mir helfen zu verstehen, ob es möglich ist, eine Funktion sowohl mit einem Dekorator und ohne es zu verwenden.Verwerfen Sie den Dekorateur
Beispiel:
def makeitalic(fn):
def wrapped():
return "<i>" + fn() + "</i>"
return wrapped
@makeitalic
def hello():
return "hello, sir or madam!"
Der einzige Weg, der mir in den Sinn kommt:
def hello():
return "hello, sir or madam!"
@makeitalic
def italic_hello():
return(hello())
Nun ist es möglich, hallo() ohne den Dekorateur zu benutzen?
Beachten Sie, dass 'italic_hello = makeitalic (hallo)' wäre einfacher - das ist im Grunde der syntaktische Zucker von '@ makeitalic'. – jonrsharpe
Sie könnten die tatsächliche Funktion als Attribut zu 'wrapped' zuweisen. –
Wenn Sie diese Art von dynamischem Verhalten benötigen, verwenden Sie keine Dekoratoren. – pvg