python 偏函數應用

來源:互聯網
上載者:User

摘要: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應用的例子和結果:

  1 #!/usr/bin/python  2 from functools import partial  3 import Tkinter  4 root=Tkinter.Tk()  5 mybutton=partial(Tkinter.Button,root,fg='white',bg='blue')  6 b1=mybutton(text='Button1')  7 b2=mybutton(text='Button2')  8 qb=mybutton(text='QUIT',bg='red',command=root.quit)  9 b1.pack() 10 b2.pack() 11 qb.pack(fill=Tkinter.X,expand=True) 12 root.title('PAF!') 13 root.mainloop()


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.