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实现ftp客户端示例分享
Feb 17 Python
Python学习小技巧之列表项的排序
May 20 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 Python
pyqt5之将textBrowser的内容写入txt文档的方法
Jun 21 Python
Django对models里的objects的使用详解
Aug 17 Python
python爬虫中多线程的使用详解
Sep 23 Python
pytorch 实现模型不同层设置不同的学习率方式
Jan 06 Python
Python有参函数使用代码实例
Jan 06 Python
keras模型保存为tensorflow的二进制模型方式
May 25 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 Python
python 统计list中各个元素出现的次数的几种方法
Feb 20 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中英混合字符串截取函数代码
2011/07/17 PHP
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
PHP框架Laravel的小技巧两则
2015/02/10 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
js获取当前select 元素值的代码
2010/04/19 Javascript
js对象的构造和继承实现代码
2010/12/05 Javascript
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
Nuxt.js实战详解
2018/01/18 Javascript
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
Python fileinput模块使用介绍
2014/11/30 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
Python搭建代理IP池实现接口设置与整体调度
2019/10/27 Python
numpy库reshape用法详解
2020/04/19 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
小学生安全保证书
2014/02/01 职场文书
机关党员公开承诺书
2014/08/30 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
2015年药店工作总结
2015/04/20 职场文书
飞屋环游记观后感
2015/06/08 职场文书
父亲节感言
2015/08/03 职场文书