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 相关文章推荐
Python动态加载模块的3种方法
Nov 22 Python
详细介绍Python函数中的默认参数
Mar 30 Python
Python获取CPU、内存使用率以及网络使用状态代码
Feb 08 Python
对numpy Array [: ,] 的取值方法详解
Jul 02 Python
Python多图片合并PDF的方法
Jan 03 Python
Python for循环与range函数的使用详解
Mar 23 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
Jun 05 Python
python队列原理及实现方法示例
Nov 27 Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 Python
Python 过滤错误log并导出的实例
Dec 26 Python
virtualenv介绍及简明教程
Jun 23 Python
opencv-python图像配准(匹配和叠加)的实现
Jun 23 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
咖啡语言
2021/03/03 咖啡文化
如何隐藏你的.php文件
2007/01/04 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
ThinkPHP3.1查询语言详解
2014/06/19 PHP
php实现购物车功能(下)
2016/01/05 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
用js生产批量批处理执行命令
2008/07/28 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
Django 反向生成url实例详解
2019/07/30 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
Python实现线性插值和三次样条插值的示例代码
2019/11/13 Python
Python 随机按键模拟2小时
2020/12/30 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
Java servlet面试题
2012/03/04 面试题
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
体育系毕业生求职自荐信
2014/04/16 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
微信搭讪开场白
2015/05/28 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS