偏函數(Partial)


不用代碼片了,直接敲代碼:

from functools import partial as pto

MyButton =  pto(Button,top)

CritButton = pto(MyButton,command = critCB, bg = 'white', fg= 'red')

WarnButton = pto(MyButton,command = warnCB, bg = 'goldenrodl')

 

以上代碼出現在GUI編程中的一部分,看到之后不不明白。不知道什么意思,

看了注釋才知道,原來是偏函數。膜拜了!

 

介紹一下偏函數:偏函數是2.5版本以后引進來的東西。屬於函數式編程的一部分,使用偏函數可以通過有效地“凍結”那些預先確定的參數,來緩存函數參數,然后在運行時,當獲得需要的剩余參數后,可以將他們解凍,傳遞到最終的參數中,從而使用最終確定的所有參數去調用函數。

 

看了一個比較容易理解的例子:

def add(a,b):

      return a+b;

add(3,5)

add(4,7)

以上兩個是我們正常調用,那么如果我們知道一個已知的參數a= 100,我們如何利用偏函數呢?

import functools import partial as pto

puls = pto(add,100)

result = puls(9)

result的結果就是109。

在這里偏函數表達的意思就是,在函數add的調用時,我們已經知道了其中的一個參數,我們可以通過這個參數,重新綁定一個函數,就是pto(add,100),然后去調用即可。

對於有很多可調用對象,並且許多調用都反復使用相同參數的情況,使用偏函數比較合適。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM