Python偏函數(shù)實現(xiàn)原理及應(yīng)用
摘要:python的設(shè)計核心原則就是簡潔——在這種原則的指導(dǎo)下,誕生了lambda表達式和偏函數(shù):二者都讓函數(shù)調(diào)用變得簡潔。本文主要為你介紹偏函數(shù)的應(yīng)用。
1.為什么要使用偏函數(shù)
如果我們定義了一個函數(shù),比如說將四個數(shù)相加add(one ,two,three,four),上層有很多函數(shù)需要調(diào)用這個函數(shù)。在這些調(diào)用中,80%的調(diào)用傳遞的參數(shù)都是one=1,two=20,如果我們每都輸入相同的參數(shù),這樣乏味而且浪費,固然,我們可以通過默認參數(shù)來解決這個問題;但是如果另外我們也需要參數(shù)是one=2,two=10的情況呢?所以,我們需要一種函數(shù),能夠?qū)⑷我鈹?shù)量的參數(shù)的函數(shù)轉(zhuǎn)化成帶剩余參數(shù)的函數(shù)對象。
2.什么是偏函數(shù)
通過上面,我們大概明白了什么是偏函數(shù):簡單的說,偏函數(shù)就是某一種函數(shù)帶有固定參數(shù)的實現(xiàn),所以,我們需要:
1)給偏函數(shù)命名
2)傳遞固定參數(shù)
看下面這個例子:
from operator import add,mulfrom functools import partialadd1=partial(add,1)add(2,4) #6add(1,2) #3
3.如何使用偏函數(shù)
可能你還沒有感受到偏函數(shù)的巨大威力,這里舉出一個常見的應(yīng)用場景。在GUI程序中,一個控件往往有很多參數(shù):大小、長度、最大尺寸、前景色、背景色等;而我們大量用到同種控件,此時,偏函數(shù)就非常有用了。下面給出一個GUI應(yīng)用的例子和結(jié)果:
root=Tkinter.Tk()mybutton=partial(Tkinter.Button,root,fg=’white’,bg=’blue’)b1=mybutton(text=’Button1’)b2=mybutton(text=’Button2’)qb=mybutton(text=’QUIT’,bg=’red’,command=root.quit)b1.pack()b2.pack()qb.pack(fill=Tkinter.X,expand=True)root.title(’PAF!’)root.mainloop()
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP中常用的22個FSO文件操作函數(shù)整理2. 無線標記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁3. ASP調(diào)用WebService轉(zhuǎn)化成JSON數(shù)據(jù),附j(luò)son.min.asp4. .Net core 的熱插拔機制的深入探索及卸載問題求救指南5. SharePoint Server 2019新特性介紹6. html清除浮動的6種方法示例7. 讀大數(shù)據(jù)量的XML文件的讀取問題8. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析9. React+umi+typeScript創(chuàng)建項目的過程10. Vue+elementUI下拉框自定義顏色選擇器方式
