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构造函数及解构函数介绍
Feb 26 Python
Python实现方便使用的级联进度信息实例
May 05 Python
Python+OpenCV人脸检测原理及示例详解
Oct 19 Python
Python实现上下班抢个顺风单脚本
Feb 07 Python
Python小工具之消耗系统指定大小内存的方法
Dec 03 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 Python
python实现智能语音天气预报
Dec 02 Python
Python自动采集微信联系人的实现示例
Feb 28 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
May 25 Python
python利用xlsxwriter模块 操作 Excel
Oct 14 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
PHP合并discuz用户脚本的方法
2015/08/04 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
Javascript数组Array基础介绍
2016/03/13 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
Python实现的石头剪子布代码分享
2014/08/22 Python
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
Django文件上传与下载(FileFlid)
2019/10/06 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
Michael Kors加拿大官网:购买设计师手袋、手表、鞋子、服装等
2019/03/16 全球购物
什么是URL
2015/12/13 面试题
高三自我鉴定
2013/10/23 职场文书
锦旗标语大全
2014/06/23 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
专业技术职务聘任证明
2015/03/02 职场文书