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配置文件解析模块ConfigParser使用实例
Apr 13 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
利用python程序帮大家清理windows垃圾
Jan 15 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
May 11 Python
python3+selenium实现126邮箱登陆并发送邮件功能
Jan 23 Python
在python里从协程返回一个值的示例
Feb 19 Python
Python使用线程来接收串口数据的示例
Jul 02 Python
Django使用unittest模块进行单元测试过程解析
Aug 02 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
Dec 13 Python
利用django model save方法对未更改的字段依然进行了保存
Mar 28 Python
Python编写memcached启动脚本代码实例
Aug 14 Python
python的列表生成式,生成器和generator对象你了解吗
Mar 16 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 7新特性之类型申明详解
2017/06/06 PHP
详解PHP PDO简单教程
2019/05/28 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
2019/09/30 PHP
jQuery解决iframe高度自适应代码
2009/12/20 Javascript
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
Python实现简单状态框架的方法
2015/03/19 Python
Python中threading模块join函数用法实例分析
2015/06/04 Python
python计算日期之间的放假日期
2018/06/05 Python
解决Pycharm运行时找不到文件的问题
2018/10/29 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
影视制作岗位职责
2013/12/04 职场文书
迟到检讨书300字
2014/02/14 职场文书
请假条怎么写
2014/04/10 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
婚庆司仪开场白
2015/05/29 职场文书
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
Python数据结构之队列详解
2022/03/21 Python