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通过zlib实现压缩与解压字符串的方法
Nov 19 Python
Python实现将不规范的英文名字首字母大写
Nov 15 Python
wxPython的安装图文教程(Windows)
Dec 28 Python
python中的数据结构比较
May 13 Python
python基于递归解决背包问题详解
Jul 03 Python
python3使用GUI统计代码量
Sep 18 Python
Python StringIO如何在内存中读写str
Jan 07 Python
logging level级别介绍
Feb 21 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 Python
解决python3输入的坑——input()
Dec 05 Python
Python机器学习之逻辑回归
May 11 Python
Python 的演示平台支持 WSGI 接口的应用
Apr 20 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
国产动画《伍六七》原声大碟大卖,啊哈娱乐引领音乐赋能IP的新尝试
2020/03/08 国漫
Oracle 常见问题解答
2006/10/09 PHP
建立动态的WML站点(二)
2006/10/09 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
两种简单实现菜单高亮显示的JS类代码
2010/06/27 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
JS计算网页停留时间代码
2014/04/28 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
jQuery动态产生select option下拉列表
2017/03/15 Javascript
js计算两个时间差 天 时 分 秒 毫秒的代码
2019/05/21 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
Python类的继承和多态代码详解
2017/12/27 Python
Python无损音乐搜索引擎实现代码
2018/02/02 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
2020/01/03 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
Python 爬虫的原理
2020/07/30 Python
学习教师法的心得体会
2014/09/03 职场文书
作风大整顿心得体会
2014/09/10 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
离婚协议书范文2014
2014/10/16 职场文书
小英雄雨来观后感
2015/06/09 职场文书
高三物理教学反思
2016/02/20 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL