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来使用七牛云存储的方法详解
Aug 07 Python
Python中对元组和列表按条件进行排序的方法示例
Nov 10 Python
在Python的一段程序中如何使用多次事件循环详解
Sep 07 Python
python实现协同过滤推荐算法完整代码示例
Dec 15 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
超简单的Python HTTP服务
Jul 22 Python
python实现的config文件读写功能示例
Sep 24 Python
Pycharm+Python+PyQt5使用详解
Sep 25 Python
python验证码图片处理(二值化)
Nov 01 Python
Python request中文乱码问题解决方案
Sep 17 Python
python OpenCV学习笔记
Mar 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
destoon实现商铺管理主页设置增加新菜单的方法
2014/06/26 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
2016/05/20 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
php给数组赋值的实例方法
2019/09/26 PHP
jquery构造器的实现代码小结
2011/05/16 Javascript
js中reverse函数的用法详解
2013/12/26 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
Django通过json格式收集主机信息
2020/05/29 Python
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
毕业生实习期转正自我鉴定
2014/09/26 职场文书
2015教师节通讯稿
2015/07/20 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题
SQL CASE 表达式的具体使用
2022/03/21 SQL Server
Java存储没有重复元素的数组
2022/04/29 Java/Android
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL