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获取beautifulphoto随机某图片代码实例
Dec 18 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
May 25 Python
python中装饰器级连的使用方法示例
Sep 29 Python
python中获得当前目录和上级目录的实现方法
Oct 12 Python
python matplotlib坐标轴设置的方法
Dec 05 Python
python监控键盘输入实例代码
Feb 09 Python
django解决订单并发问题【推荐】
Jul 31 Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 Python
Python如何在循环内使用list.remove()
Jun 01 Python
python3 简单实现组合设计模式
Jul 02 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 Python
Django路由层如何获取正确的url
Jul 15 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
Windows下安装Memcached的步骤说明
2010/04/25 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
2014/01/06 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
jquery心形点赞关注效果的简单实现
2016/11/14 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
vue上传图片到oss的方法示例(图片带有删除功能)
2018/09/27 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
python实现简单购物商城
2016/05/21 Python
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
2019/02/26 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
详解python中的index函数用法
2019/08/06 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
python中rc1什么意思
2020/06/19 Python
如何用python免费看美剧
2020/08/11 Python
Python list和str互转的实现示例
2020/11/16 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
保证书范文大全
2014/04/28 职场文书
医院党建工作总结2015
2015/05/26 职场文书
环境卫生标语
2015/08/03 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
Javascript的promise,async和await的区别详解
2022/03/24 Javascript