Python中的匿名函数使用简介


Posted in Python onApril 27, 2015

当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。

在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:

>>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])
[1, 4, 9, 16, 25, 36, 49, 64, 81]

通过对比可以看出,匿名函数lambda x: x * x实际上就是:

def f(x):
  return x * x

关键字lambda表示匿名函数,冒号前面的x表示函数参数。

匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。

用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:

>>> f = lambda x: x * x
>>> f
<function <lambda> at 0x10453d7d0>
>>> f(5)
25

同样,也可以把匿名函数作为返回值返回,比如:

def build(x, y):
  return lambda: x * x + y * y

小结

Python对匿名函数的支持有限,只有一些简单的情况下可以使用匿名函数。

Python 相关文章推荐
python实现计算资源图标crc值的方法
Oct 05 Python
DJANGO-ALLAUTH社交用户系统的安装配置
Nov 18 Python
Python functools模块学习总结
May 09 Python
小议Python中自定义函数的可变参数的使用及注意点
Jun 21 Python
Python使用装饰器进行django开发实例代码
Feb 06 Python
python和flask中返回JSON数据的方法
Mar 26 Python
浅谈Python traceback的优雅处理
Aug 31 Python
对python中Json与object转化的方法详解
Dec 31 Python
Python字符串逆序的实现方法【一题多解】
Feb 18 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
Aug 28 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
Feb 26 Python
Django数据模型中on_delete使用详解
Nov 30 Python
Python中用函数作为返回值和实现闭包的教程
Apr 27 #Python
Python中利用sorted()函数排序的简单教程
Apr 27 #Python
Python中的filter()函数的用法
Apr 27 #Python
Python中的map()函数和reduce()函数的用法
Apr 27 #Python
PyMongo安装使用笔记
Apr 27 #Python
Windows下PyMongo下载及安装教程
Apr 27 #Python
Python操作MongoDB数据库PyMongo库使用方法
Apr 27 #Python
You might like
Php部分常见问题总结
2006/10/09 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
php实现图片上传并利用ImageMagick生成缩略图
2016/03/14 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
JavaScript中的setUTCDate()方法使用详解
2015/06/11 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
jQuery轮播图功能制作方法详解
2019/12/03 jQuery
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
python模块如何查看
2020/06/16 Python
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
金士达面试非笔试
2012/03/14 面试题
工商技校毕业生自荐信
2013/11/15 职场文书
《夏夜多美》教学反思
2014/02/17 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
婚宴新郎致辞
2015/07/28 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
Redis 异步机制
2022/05/15 Redis
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android