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中实现php的var_dump函数功能
Jan 21 Python
python Web开发你要理解的WSGI & uwsgi详解
Aug 01 Python
python 定时任务去检测服务器端口是否通的实例
Jan 26 Python
Python 一键制作微信好友图片墙的方法
May 16 Python
windows10下安装TensorFlow Object Detection API的步骤
Jun 13 Python
Python Pandas数据中对时间的操作
Jul 30 Python
Python搭建代理IP池实现获取IP的方法
Oct 27 Python
零基础小白多久能学会python
Jun 22 Python
python在一个范围内取随机数的简单实例
Aug 16 Python
python中的垃圾回收(GC)机制
Sep 21 Python
python使用bs4爬取boss直聘静态页面
Oct 10 Python
python SOCKET编程基础入门
Feb 27 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实现快速排序法函数代码
2012/08/27 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
php实现源代码加密的方法
2015/07/11 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
实例讲解PHP表单处理
2019/02/15 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
jQuery判断多个input file 都不能为空的例子
2015/06/23 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
AngularJS表单验证功能分析
2017/05/26 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
python cookielib 登录人人网的实现代码
2012/12/19 Python
Python创建日历实例
2014/08/21 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
办公室保洁员岗位职责
2013/12/02 职场文书
大学生秋游活动方案
2014/02/17 职场文书
经典洗发水广告词
2014/03/13 职场文书
应届生求职信范文
2014/06/30 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang