【Python 軍火庫🧨 - functools】使用partial來設計函數樣板

2023/10/11閱讀時間約 2 分鐘
raw-image

圖片來源...

「functools.partial」是Python中的一個標準函式庫,它可以讓我們基於既有的函式封裝成多種不同用途的函式,就如同上圖所示,我們設計了一個乘法(multiply)的函數,使用了partial讓函數的參數「c」固定下來依據用途不同變化出「double」、「triple」,這樣一來我們也不用重寫這兩種功能的函式,減少了程式碼的重複性。

假如沒有Partial我們會需要點Redundant Code

def multiply(a, b, c):
return a * b * c

# 😔 多出一個函式定義區塊
def double(a, b):
return multiply(a, b, 2)

# 😔 多出一個函式定義區塊
def triple(a, b):
return multiply(a, b, 3)

result1 = double(5, 4)
result2 = triple(5, 4)

我們還可以這樣做…

from functools import partial

# 給予名稱並印出訊息
def print_msg(name, message):
msg = str(name) +", "+ str(message)
return msg

# 歡迎的罐頭語
welcome = Partial(print_msg, message='歡迎加入團隊')

weekend_wish = Partial(print_msg, message='周末愉快!')

print(welcome('Amy'))

print(holidays('John'))

# >
# Amy, 歡迎加入團隊
# John, 周末愉快!

結語

原來Python可以這麼酷,這種高階的程式語言透過易讀的標準函式庫讓我們的程式碼可以更加的簡潔,不會太過於底層導致複雜的應用程式帶來難以維護的程式碼,甚至可以幫助我們創造出各式不同功能的函數庫,非常值得我們學習。

學習軟體開發的路上常常苦於網路資訊爆炸嗎? 教學何其多,但卻遇到無法明確選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您業界開發重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。

91會員
260內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
發表第一個留言支持創作者!