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在windows下实现备份程序实例
Jul 04 Python
Python图片裁剪实例代码(如头像裁剪)
Jun 21 Python
用python实现的线程池实例代码
Jan 06 Python
Python 反转字符串(reverse)的方法小结
Feb 20 Python
如何在Django配置文件里配置session链接
Aug 06 Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 Python
python 实现仿微信聊天时间格式化显示的代码
Apr 17 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
Keras 实现加载预训练模型并冻结网络的层
Jun 15 Python
基于Python和C++实现删除链表的节点
Jul 06 Python
Python 打印自己设计的字体的实例讲解
Jan 04 Python
Python使用openpyxl模块处理Excel文件
Jun 05 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
javascript,php获取函数参数对象的代码
2011/02/03 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
PHP中使用BigMap实例
2015/03/30 PHP
php上传excel表格并获取数据
2017/04/27 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
神奇的7个jQuery 3D插件整理
2011/01/06 Javascript
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
JSONP基础知识详解
2017/03/19 Javascript
AjaxUpLoad.js实现文件上传功能
2018/03/02 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
Python中的文件和目录操作实现代码
2011/03/13 Python
linux 下实现python多版本安装实践
2014/11/18 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
一文带你了解Python中的字符串是什么
2018/11/20 Python
python3实现逐字输出的方法
2019/01/23 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
开业庆典主持词
2014/03/21 职场文书
高中军训的心得体会
2014/09/01 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
Ajax实现局部刷新的方法实例
2021/03/31 Javascript
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技