Learn with Shin

Scrum、Python 3、pathlib、IPython、CLPython、SSE Python程式語言國際認證、Scrum產品開發、Collections、NumPy、blockchain、程式語言 (C/Python)、scrum產品管理、Python、ActivePython、網頁資料擷取與分析 Python

HsuShin

2022/05/30

Decorator - 點綴我們的function

想像一下在萬聖節的時候,我們在門上,桌上,牆上,傢俱等各種物品上放上南瓜妖怪的裝飾品。
藉由這些裝飾品,原本平凡的門跟傢俱,在不需要改造它們本質的情況下,輕輕鬆鬆就增添了萬聖節的氣氛。甚至,我可以想裝飾哪裡就哪裡,就算是廁所🚽也沒問題。
如果,今天沒有這些萬聖節裝飾品,當我想要營造這個氣氛時,我搞不好得叫木工在牆上做個造型,或是把門的樣式都改掉,不用說廁所的難度又更高了。
聽起來很不符合經濟效益,是吧?所以裝飾品是很好用的
在Python中,有一個類似的概念,叫做Decorator。
它能讓我們去對指定的function增添一些東西,甚至是改變它的行為,而不需要去動到function本身。
聽起來好像有點神奇嗎?那麼,我們來看一個簡單的例子吧。
假設我有下面三個簡單的function:
這三個function分別return不同的字串:hello、hi、yo
今天,如果說我想要每個function的return值都加上一個南瓜的表情符號....
0 0 100 0
本篇內容來自以下教室