首页 > 编程语言 > 详细

python 偏函数应用

时间:2014-03-26 16:53:44      阅读:531      评论:0      收藏:0      [点我收藏+]

摘要: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()

bubuko.com,布布扣

python 偏函数应用,布布扣,bubuko.com

python 偏函数应用

原文:http://blog.csdn.net/trochiluses/article/details/22149705

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!