Python偏函數(shù)實(shí)現(xiàn)原理及應(yīng)用
摘要:python的設(shè)計(jì)核心原則就是簡(jiǎn)潔——在這種原則的指導(dǎo)下,誕生了lambda表達(dá)式和偏函數(shù):二者都讓函數(shù)調(diào)用變得簡(jiǎn)潔。本文主要為你介紹偏函數(shù)的應(yīng)用。
1.為什么要使用偏函數(shù)
如果我們定義了一個(gè)函數(shù),比如說(shuō)將四個(gè)數(shù)相加add(one ,two,three,four),上層有很多函數(shù)需要調(diào)用這個(gè)函數(shù)。在這些調(diào)用中,80%的調(diào)用傳遞的參數(shù)都是one=1,two=20,如果我們每都輸入相同的參數(shù),這樣乏味而且浪費(fèi),固然,我們可以通過(guò)默認(rèn)參數(shù)來(lái)解決這個(gè)問(wèn)題;但是如果另外我們也需要參數(shù)是one=2,two=10的情況呢?所以,我們需要一種函數(shù),能夠?qū)⑷我鈹?shù)量的參數(shù)的函數(shù)轉(zhuǎn)化成帶剩余參數(shù)的函數(shù)對(duì)象。
2.什么是偏函數(shù)
通過(guò)上面,我們大概明白了什么是偏函數(shù):簡(jiǎn)單的說(shuō),偏函數(shù)就是某一種函數(shù)帶有固定參數(shù)的實(shí)現(xiàn),所以,我們需要:
1)給偏函數(shù)命名
2)傳遞固定參數(shù)
看下面這個(gè)例子:
from operator import add,mul
from functools import partial
add1=partial(add,1)
add(2,4) #6
add(1,2) #3
3.如何使用偏函數(shù)
可能你還沒(méi)有感受到偏函數(shù)的巨大威力,這里舉出一個(gè)常見(jiàn)的應(yīng)用場(chǎng)景。在GUI程序中,一個(gè)控件往往有很多參數(shù):大小、長(zhǎng)度、最大尺寸、前景色、背景色等;而我們大量用到同種控件,此時(shí),偏函數(shù)就非常有用了。下面給出一個(gè)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()

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python運(yùn)行時(shí)強(qiáng)制刷新緩沖區(qū)的方法
今天小編就為大家分享一篇python運(yùn)行時(shí)強(qiáng)制刷新緩沖區(qū)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
用python一行代碼得到數(shù)組中某個(gè)元素的個(gè)數(shù)方法
今天小編就為大家分享一篇用python一行代碼得到數(shù)組中某個(gè)元素的個(gè)數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Python實(shí)現(xiàn)抓取網(wǎng)頁(yè)并且解析的實(shí)例
這篇文章主要介紹了Python實(shí)現(xiàn)抓取網(wǎng)頁(yè)并且解析的功能實(shí)例,主要以解析百度問(wèn)答為例說(shuō)明其原理與方法,需要的朋友可以參考下2014-09-09
Python通過(guò)len函數(shù)返回對(duì)象長(zhǎng)度
這篇文章主要介紹了Python通過(guò)len函數(shù)返回對(duì)象長(zhǎng)度,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
Python新手入門之常用關(guān)鍵字的簡(jiǎn)單示例詳解
關(guān)鍵字是預(yù)先保留的標(biāo)識(shí)符,每個(gè)關(guān)鍵字都有特殊的含義,下面這篇文章主要給大家介紹了關(guān)于Python新手入門之常用關(guān)鍵字的簡(jiǎn)單示例,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03

