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用fork来创建子进程注意事项
Jul 03 Python
浅析Python中的多进程与多线程的使用
Apr 07 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
python http接口自动化脚本详解
Jan 02 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
创建Django项目图文实例详解
Jun 06 Python
Django如何自定义model创建数据库索引的顺序
Jun 20 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
Aug 13 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
Feb 27 Python
Python+Xlwings 删除Excel的行和列
Dec 19 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
综合图片计数器
2006/10/09 PHP
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
jQuery TextBox自动完成条
2009/07/22 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
基于Vue实现拖拽效果
2018/04/27 Javascript
javascript实现小型区块链功能
2019/04/03 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
js仿360开机效果
2019/12/26 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
python处理PHP数组文本文件实例
2014/09/18 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
Python numpy 点数组去重的实例
2018/04/18 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
Python处理PDF与CDF实例
2020/02/26 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
python TCP包注入方式
2020/05/05 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
2014/11/05 HTML / CSS
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
美国高端寝具品牌:Coyuchi
2017/02/08 全球购物
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
求职自我推荐信
2014/06/25 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python