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 获取本机ip地址的两个方法
Feb 25 Python
Python threading多线程编程实例
Sep 18 Python
python中文编码问题小结
Sep 28 Python
Python模拟三级菜单效果
Sep 11 Python
Python中的取模运算方法
Nov 10 Python
python+selenium实现自动化百度搜索关键词
Jun 03 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
Jun 17 Python
在Python中COM口的调用方法
Jul 03 Python
django3.02模板中的超链接配置实例代码
Feb 04 Python
Django使用Celery加redis执行异步任务的实例内容
Feb 20 Python
什么是python的自省
Jun 21 Python
python实现文件+参数发送request的实例代码
Jan 05 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中抽象类、接口的区别与选择分析
2016/03/29 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
基于jquery的跨域调用文件
2010/11/19 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
JS实现购物车特效
2017/02/02 Javascript
jQuery.form.js的使用详解
2017/06/14 jQuery
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
对angular4子路由&辅助路由详解
2018/10/09 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
JavaScript实现网页动态生成表格
2020/11/25 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
Python基于Tkinter实现的记事本实例
2015/06/17 Python
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
Python嵌套列表转一维的方法(压平嵌套列表)
2018/07/03 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
美国销售第一的智能手机和平板电脑保护壳:OtterBox
2017/12/21 全球购物
大学生求职简历的自我评价
2013/10/14 职场文书
函授自我鉴定
2013/11/06 职场文书
大学毕业生的自我鉴定
2013/11/30 职场文书
平民服装店创业计划书
2014/01/17 职场文书
植树节标语
2014/06/27 职场文书
家庭教育的心得体会
2014/09/01 职场文书
应聘教师求职信范文
2015/03/20 职场文书
初级职称评定工作总结
2015/08/13 职场文书
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers