1. 程式人生 > 程式設計 >Python偏函式實現原理及應用

Python偏函式實現原理及應用

摘要:python的設計核心原則就是簡潔——在這種原則的指導下,誕生了lambda表示式和偏函式:二者都讓函式呼叫變得簡潔。本文主要為你介紹偏函式的應用。

1.為什麼要使用偏函式

如果我們定義了一個函式,比如說將四個數相加add(one,two,three,four),上層有很多函式需要呼叫這個函式。在這些呼叫中,80%的呼叫傳遞的引數都是one=1,two=20,如果我們每都輸入相同的引數,這樣乏味而且浪費,固然,我們可以通過預設引數來解決這個問題;但是如果另外我們也需要引數是one=2,two=10的情況呢?所以,我們需要一種函式,能夠將任意數量的引數的函式轉化成帶剩餘引數的函式物件。

2.什麼是偏函式

通過上面,我們大概明白了什麼是偏函式:簡單的說,偏函式就是某一種函式帶有固定引數的實現,所以,我們需要:

1)給偏函式命名

2)傳遞固定引數

看下面這個例子:

from operator import add,mul
from functools import partial
add1=partial(add,1)
add(2,4) #6
add(1,2) #3

3.如何使用偏函式

可能你還沒有感受到偏函式的巨大威力,這裡舉出一個常見的應用場景。在GUI程式中,一個控制元件往往有很多引數:大小、長度、最大尺寸、前景色、背景色等;而我們大量用到同種控制元件,此時,偏函式就非常有用了。下面給出一個GUI應用的例子和結果:

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()

Python偏函式實現原理及應用

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。