Python偏函数实现原理及应用


Posted in Python onNovember 20, 2020

摘要: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偏函数实现原理及应用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用htmllib分析网页内容的方法
May 08 Python
Python实现二叉搜索树
Feb 03 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
May 17 Python
Python实现简单的多任务mysql转xml的方法
Feb 08 Python
python字符串的方法与操作大全
Jan 30 Python
python 通过logging写入日志到文件和控制台的实例
Apr 28 Python
opencv+python实现均值滤波
Feb 19 Python
基于python实现数组格式参数加密计算
Apr 21 Python
python 抓取知乎指定回答下视频的方法
Jul 09 Python
Python字符串查找基本操作代码案例
Oct 27 Python
matplotlib之属性组合包(cycler)的使用
Feb 24 Python
Python time库的时间时钟处理
May 02 Python
python与idea的集成的实现
Nov 20 #Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 #Python
python3 re返回形式总结
Nov 20 #Python
python 实现图片修复(可用于去水印)
Nov 19 #Python
python 删除系统中的文件(按时间,大小,扩展名)
Nov 19 #Python
Python并发爬虫常用实现方法解析
Nov 19 #Python
python实现文件分片上传的接口自动化
Nov 19 #Python
You might like
PHP+MYSQL 出现乱码的解决方法
2008/08/08 PHP
mayfish 数据入库验证代码
2010/04/30 PHP
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
childNodes.length与children.length的区别
2009/05/14 Javascript
javascript 最常用的10个自定义函数[推荐]
2009/12/26 Javascript
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
JsDom 编程小结
2011/08/09 Javascript
利用Keydown事件阻止用户输入实现代码
2014/03/11 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
Angular中$state.go页面跳转并传递参数的方法
2017/05/09 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
自荐信如何“自荐”
2013/10/24 职场文书
成品仓管员工作职责
2013/12/29 职场文书
高三学习决心书
2014/03/11 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
2015年度女工工作总结
2015/10/22 职场文书
《草虫的村落》教学反思
2016/02/20 职场文书