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多线程同步Lock、RLock、Semaphore、Event实例
Nov 21 Python
Django-Rest-Framework 权限管理源码浅析(小结)
Nov 12 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 Python
python 自动批量打开网页的示例
Feb 21 Python
Python实现12306火车票抢票系统
Jul 04 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 Python
python网络编程之五子棋游戏
May 14 Python
django 模型中的计算字段实例
May 19 Python
Python列表如何更新值
May 27 Python
python实现移动木板小游戏
Oct 09 Python
Python 多进程、多线程效率对比
Nov 19 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 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通过cookies获取远程网页的指定代码
2013/06/25 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
jQuery Ajax 实例全解析
2011/04/20 Javascript
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
jquery新的绑定事件机制on方法的使用方法
2014/04/15 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
JavaScript声明变量名的语法规则
2015/07/10 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
Python实现Linux下守护进程的编写方法
2014/08/22 Python
python uuid模块使用实例
2015/04/08 Python
简单讲解Python中的数字类型及基本的数学计算
2016/03/11 Python
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
pycharm 的Structure界面设置操作
2021/02/05 Python
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
时尚圣经:The Fashion Bible
2019/03/03 全球购物
尼克松手表官网:Nixon手表
2019/03/17 全球购物
一份全面的PHP面试问题考卷
2012/07/15 面试题
长青弘远的面试题
2012/06/09 面试题
医学生实习自荐信
2013/10/01 职场文书
股东合作协议书范本
2014/04/14 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
孝女彩金观后感
2015/06/10 职场文书