Python 如何定义匿名或内联函数


Posted in Python onAugust 01, 2020

问题

你想为 sort() 操作创建一个很短的回调函数,但又不想用 def 去写一个单行函数, 而是希望通过某个快捷方式以内联方式来创建这个函数。

解决方案

当一些函数很简单,仅仅只是计算一个表达式的值的时候,就可以使用lambda表达式来代替了。比如:

>>> add = lambda x, y: x + y
>>> add(2,3)
5
>>> add('hello', 'world')
'helloworld'
>>>

这里使用的lambda表达式跟下面的效果是一样的:

>>> def add(x, y):
...   return x + y
...
>>> add(2,3)
5
>>>

lambda表达式典型的使用场景是排序或数据reduce等:

>>> names = ['David Beazley', 'Brian Jones',
...     'Raymond Hettinger', 'Ned Batchelder']
>>> sorted(names, key=lambda name: name.split()[-1].lower())
['Ned Batchelder', 'David Beazley', 'Raymond Hettinger', 'Brian Jones']
>>>

讨论

尽管lambda表达式允许你定义简单函数,但是它的使用是有限制的。 你只能指定单个表达式,它的值就是最后的返回值。也就是说不能包含其他的语言特性了, 包括多个语句、条件表达式、迭代以及异常处理等等。

你可以不使用lambda表达式就能编写大部分python代码。 但是,当有人编写大量计算表达式值的短小函数或者需要用户提供回调函数的程序的时候, 你就会看到lambda表达式的身影了。

以上就是Python 如何定义匿名或内联函数的详细内容,更多关于Python 定义匿名或内联函数的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
在Gnumeric下使用Python脚本操作表格的教程
Apr 14 Python
简单解析Django框架中的表单验证
Jul 17 Python
Python缩进和冒号详解
Jun 01 Python
python 全局变量的import机制介绍
Sep 07 Python
numpy排序与集合运算用法示例
Dec 15 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
May 26 Python
Python列表对象实现原理详解
Jul 01 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
Apr 08 Python
Python3中FuzzyWuzzy库实例用法
Nov 18 Python
Python类class参数self原理解析
Nov 19 Python
Django 权限管理(permissions)与用户组(group)详解
Nov 30 Python
python中的plt.cm.Paired用法说明
May 31 Python
Python sqlalchemy时间戳及密码管理实现代码详解
Aug 01 #Python
Python如何读写二进制数组数据
Aug 01 #Python
Python将字典转换为XML的方法
Aug 01 #Python
Python Flask异步发送邮件实现方法解析
Aug 01 #Python
Python实现弹球小游戏
Aug 01 #Python
序列化Python对象的方法
Aug 01 #Python
Python 忽略文件名编码的方法
Aug 01 #Python
You might like
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
2015/11/11 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
jQuery前台数据获取实现代码
2011/03/16 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
Python中的XML库4Suite Server的介绍
2015/04/14 Python
Python中标准库OS的常用方法总结大全
2017/07/19 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
python 监控服务器是否有人远程登录(详细思路+代码)
2020/12/18 Python
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
股权收购意向书
2014/04/01 职场文书
授权委托书
2014/07/31 职场文书
校长四风对照检查材料
2014/09/27 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
技术入股协议书
2016/03/22 职场文书
HttpClient实现文件上传功能
2022/08/14 Java/Android