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多线程编程方式分析示例详解
Dec 06 Python
vc6编写python扩展的方法分享
Jan 17 Python
selenium+python实现自动化登录的方法
Sep 04 Python
python 用opencv调用训练好的模型进行识别的方法
Dec 07 Python
PyCharm中代码字体大小调整方法
Jul 29 Python
opencv设置采集视频分辨率方式
Dec 10 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
Feb 29 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
Jun 12 Python
Python 在局部变量域中执行代码
Aug 07 Python
浅析Django接口版本控制
Jun 26 Python
Python中三种花式打印的示例详解
Mar 19 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)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
基于PHPExcel的常用方法总结
2013/06/13 PHP
php中session退出登陆问题
2014/02/27 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
深入理解JavaScript作用域和作用域链
2011/10/21 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
JavaScript类数组对象转换为数组对象的方法实例分析
2018/07/24 Javascript
Angular2之二级路由详解
2018/08/31 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
python制作小说爬虫实录
2017/08/14 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
HTML5图片预览实例分享
2014/06/04 HTML / CSS
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
Bowflex美国官方网站:高级家庭健身器材
2017/12/22 全球购物
付款委托书范本
2014/04/04 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
劳动仲裁撤诉申请书
2015/05/18 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
JavaScript ES6的函数拓展
2022/01/18 Javascript