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 相关文章推荐
使用Django的模版来配合字符串翻译工作
Jul 27 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
Python3 XML 获取雅虎天气的实现方法
Feb 01 Python
python 识别图片中的文字信息方法
May 10 Python
pycharm中成功运行图片的配置教程
Oct 28 Python
使用python将多个excel文件合并到同一个文件的方法
Jul 09 Python
python flask web服务实现更换默认端口和IP的方法
Jul 26 Python
python 计算积分图和haar特征的实例代码
Nov 20 Python
jupyter notebook清除输出方式
Apr 10 Python
python针对Oracle常见查询操作实例分析
Apr 30 Python
Numpy中ndim、shape、dtype、astype的用法详解
Jun 14 Python
python+opencv实现视频抽帧示例代码
Jun 11 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 socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
深入解析php中的foreach问题
2013/06/30 PHP
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
react native 文字轮播的实现示例
2018/07/27 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
浅谈vue项目打包优化策略
2018/09/29 Javascript
详解关于微信setData回调函数中的坑
2019/02/18 Javascript
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
详解Django通用视图中的函数包装
2015/07/21 Python
Python 稀疏矩阵-sparse 存储和转换
2017/05/27 Python
Python 自动化表单提交实例代码
2017/06/08 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
python各类经纬度转换的实例代码
2019/08/08 Python
Python进程池Pool应用实例分析
2019/11/27 Python
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
市场营销管理毕业生自荐信
2014/03/03 职场文书
数学教研活动总结
2014/07/02 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
利用python调用摄像头的实例分析
2021/06/07 Python
手写实现JS中的new
2021/11/07 Javascript
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫