iT邦幫忙

1

可以幫我解讀一下這些code嗎

def printHello(func):
    def wrapper():
        print('Hello')
        return func()
    return wrapper

@printHello
def printWorld():
    print('World')

printWorld()

我的疑問是 為什麼要return func() 然後再return wrapper??
哪位大大可以幫我解答 感謝

看更多先前的討論...收起先前的討論...
這種 code 沒什麼好解讀的,純粹你沒用心理解什麼是 function
book
DennisLu iT邦新手 4 級 ‧ 2021-10-26 14:28:58 檢舉
連兩貼文的問題看得出來一件事
直接跳級了

建議按部就班學習

入門書可以去大學或公共圖書館找不用錢的,
雖然通常都是舊版的,
但基本觀念都不變化太多。
花點耐性一步一步地把書上說的體會完。
基礎部分通常會很無聊也因為沒實際經驗不知道用來幹嘛,
就跟學武功一樣,
蹲馬步練基本功很無聊,很嚮往花俏的招式。

如果自己看入門書或教學網站都沒辦法自行學會,
就建議請家教或去上課了吧。
小魚 iT邦大師 1 級 ‧ 2021-10-28 12:14:54 檢舉
看書是沒有用的,
一邊看書一邊實作才有用.

2 個回答

6
0
chenyii1120
iT邦新手 5 級 ‧ 2021-11-02 00:30:17

本來想跟你解釋,但怕三言兩語解釋不清楚導致你的觀念不正確
還是直接貼網址給你參考吧ww
這個方式稱作 修飾器 或是 Decorator

https://medium.com/citycoddee/python%E9%80%B2%E9%9A%8E%E6%8A%80%E5%B7%A7-3-%E7%A5%9E%E5%A5%87%E5%8F%88%E7%BE%8E%E5%A5%BD%E7%9A%84-decorator-%E5%97%B7%E5%97%9A-6559edc87bc0

我要發表回答

立即登入回答