偏函数(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