iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
Software Development

Python Flask CICD 啟動 ! 建構屬於你的自動化流程 !系列 第 6

Day6 - Python 進階概念(二) - 裝飾器 Decorator

  • 分享至 

  • xImage
  •  

前情提要:

在前天 Python Flask 的簡單示範中,有使用到一個很不一樣的東西,也就是 @app,而這到底又是什麼呢,今天就要來跟大家分享此概念!

什麼是裝飾器 Decorator:

  • 其為 Python 的一種程式設計模式。
  • 使用時以 @ 來宣告要使用此裝飾器。
  • 本質上只是 Python 當中的函式或類。
  • 主要功能為抽離與函式本身無關的程式碼,使程式碼在未來的擴充和維護上都會變得更加的便利。

程式碼講解:

def first(fun):
    def second():
        print('This is decorator')
        fun('This decorator works')
    return second

@first
def primary(n):
    print(n)

primary()

以上為裝飾器的實作,這裡來講述此程式碼的概念:

  1. 起初會運行 primary() 此函式,來到其所在的位置後,其整體執行步驟為 @first -> primary()
  2. @first 指的是上面 first(fun) 函式,因此會先執行該函式,其中要注意 first(fun) 中的 fun,代表的其實是 primary() 函式,因此在 fun 當中輸入的,也就是 fun('This decorator works'),就是 primary 函式中的 n,由此會產生以下結果:
This is decorator
This decorator works
  1. 因此使用 primary() 時,並不需要輸入任何值,因為其在裝飾器內部就已經書寫好。

上一篇
Day5 - Python 進階概念(一) - 模塊 Module
下一篇
Day7 - Python Flask(一) - URL 路徑使用
系列文
Python Flask CICD 啟動 ! 建構屬於你的自動化流程 !30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言