在前天 Python Flask 的簡單示範中,有使用到一個很不一樣的東西,也就是 @app
,而這到底又是什麼呢,今天就要來跟大家分享此概念!
@
來宣告要使用此裝飾器。def first(fun):
def second():
print('This is decorator')
fun('This decorator works')
return second
@first
def primary(n):
print(n)
primary()
以上為裝飾器的實作,這裡來講述此程式碼的概念:
primary()
此函式,來到其所在的位置後,其整體執行步驟為 @first
-> primary()
。@first
指的是上面 first(fun)
函式,因此會先執行該函式,其中要注意 first(fun)
中的 fun
,代表的其實是 primary()
函式,因此在 fun
當中輸入的,也就是 fun('This decorator works')
,就是 primary 函式中的 n,由此會產生以下結果:This is decorator
This decorator works
primary()
時,並不需要輸入任何值,因為其在裝飾器內部就已經書寫好。