11
def makebold(fn):
def wrapped():
return "<b>" + fn() + "</b>"
return wrapped
def makeitalic(fn):
def wrapped():
return "<i>" + fn() + "</i>"
return wrapped
@makeitalic
@makebold
def hello():
return "hello world"
print(hello()) ## returns "<b><i>hello world</i></b>"
在這段代碼中,爲什麼不直接定義函數makeitalic()和makebold()並傳入函數hello?Python裝飾器vs傳遞函數
我在這裏錯過了什麼,或者是裝飾者真的更適合更復雜的事情嗎?
感謝,似乎沒有必要在這種情況下。我相信他們在其他使用案例中提供簡潔。 –