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中的__init__ 、__new__、__call__小结
Apr 25 Python
Python的面向对象思想分析
Jan 14 Python
python实现在IDLE中输入多行的方法
Apr 19 Python
Centos 升级到python3后pip 无法使用的解决方法
Jun 12 Python
python进行TCP端口扫描的实现
Dec 21 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 Python
python实现对图片进行旋转,放缩,裁剪的功能
Aug 07 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
Mar 02 Python
使用PyCharm安装pytest及requests的问题
Jul 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自定文件保存session的方法
2014/12/10 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
JavaScript 应用类库代码
2008/06/02 Javascript
js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)
2011/10/31 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
JavaScript中reduce()方法的使用详解
2015/06/09 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
JS对HTML表格进行增删改操作
2016/08/22 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
python文件操作的简单方法总结
2019/11/07 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
python初步实现word2vec操作
2020/06/09 Python
Python中的__init__作用是什么
2020/06/09 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
清华大学自主招生自荐信
2014/01/29 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
大班幼儿评语大全
2014/04/30 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
幼儿园教师管理制度
2015/08/05 职场文书
门面租赁合同范文
2019/08/06 职场文书
2020年元旦晚会策划书模板
2019/12/30 职场文书
python OpenCV学习笔记
2021/03/31 Python