python之lambda函数
今天复习python,看见一个关于lambda函数的例子,在python中使用lambda在某些时候十分方便,因为不必为了实现某些简单功能而新建一个函数。但是有这么一个lambda实例令我有些疑惑,现将其贴出来并推测其功用,如有错误,还请指正!
def func(a,b,operation):
print("a = %d"%a)
print("b = %d"%b)
print("result =",operation(a,b))
func(11,22,lambda x, y:x + y)
print("------------------------")
func(11,22,lambda x, y : x - y)
运行结果:

可见:通过向func()函数传递了三个参数,依次是:11,22,lambda函数,也就是说将 lambda x, y: x + y 赋值给operation,那么operation = lambda x, y : x + y。在func()函数中的第三条语句print("result=",operation)中调用了operation,也就相当于把lambda函数填入代替这个operation, operation括号内两个值赋给lambda的x和y,通过lambda函数实现a和b的相加运算,也就是11 + 22。
在这里operation = lambda x, y : x + y, operation相当于调用lambda函数的实例名,为函数实例赋值相当于为lambda函数传值,lambda的表达式的结果类似于return 表达式 ,只是lambda函数无需return就能将表达式的值传回调用处,这个函数示例是使用operation实例变量来调用lambda函数,那么lambda表达式的值将返回给operation(),注意,不是返回给operation变量!!!operation类似于一个匿名函数的函数名,输出函数名不能得到返回的值,只用使用函数名()来输出结果。
func = lambda x : x + 2
print(func)
print(func(3))

可见,此处的func相当于lambda的函数名,尽管lambda是匿名函数,但是调用这个匿名函数需要一个实例,这个func就是他的实例。
但是,匿名函数本来就不需要一个函数名,此处的使用纯属多此一举,在python编程的使用中不多见。
python之lambda函数的更多相关文章
- Python的lambda函数与排序
Python的lambda函数与排序 2010-03-02 15:02 2809人阅读 评论(0) 收藏 举报 lambdapythonlistlispclass工作 目录(?)[+] 前几天 ...
- 细说Python的lambda函数用法,建议收藏
细说Python的lambda函数用法,建议收藏 在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数.今天我就和大家聊聊lambda函数,在Pyth ...
- 14.在Python中lambda函数是什么
在Python中lambda函数是什么? It is a single expression anoymous function often used as inline function. lamb ...
- Python 之 lambda 函数
Python 支持一种单行匿名函数,这种函数称为 lambda,它最初借鉴自 Lisp. >>> add = lambda x, y: x +y >>> add(3 ...
- python之lambda函数/表达式
lambda函数也叫匿名函数,允许快速定义单行函数.通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数. 格式 lambda argument_list: express ...
- 关于python中lambda 函数使用小结
例子: 如果定义普通函数,一般都是这样写: def:ds(x): return 2*x+1 调用即: ds(5) 如果用lambda函数就是这么写,就是一句话: g =lambda x:2*x+1 调 ...
- python 19 lambda函数
转自http://www.cnblogs.com/BeginMan/p/3178103.html 一.lambda函数 1.lambda函数基础: lambda函数也叫匿名函数,即,函数没有具体的名称 ...
- python中lambda函数
1.lambda函数使用如下: lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右侧的是返回值 >>> g=lambda x,y:x*y>>> g(4 ...
- python之Lambda函数---笔记
<Python3 程序开发指南> Lambda函数,是一个匿名函数,创建语法: lambda parameters:express parameters:可选,如果提供,通常是逗号分隔的变 ...
随机推荐
- zipline框架--简介
Zipline is a Pythonic algorithmic trading library. It is an event-driven system for backtesting. Zip ...
- Fastjson反序列化漏洞研究
0x01 Brief Description java处理JSON数据有三个比较流行的类库,gson(google维护).jackson.以及今天的主角fastjson,fastjson是阿里巴巴一个 ...
- centos 7.2下搭建vsftp 虚拟用户
虚拟用户搭建vsftp 要求一: 只允许上传 下载 不能删除 不能更换名称 yum install pam* yum install db4* -y yum install vsftpd chkcon ...
- mysql并发控制之快照读和当前读
上一篇简单的介绍了下MVCC(多版本并发控制)的原理,MVCC会对事物内操作的数据做多版本控制,从而实现并发环境下事物对数据写操作的阻塞不影响读操作的性能.而这个多版本控制的实现是由undo log来 ...
- python核心编程(多线程编程)
1.全局解释器锁 2.threading模块 thread类
- vo类,model类,dto类的作用及划分
1.entity里的每一个字段,与数据库相对应, 2.dto里的每一个字段,是和你前台页面相对应, 3.VO,这是用来转换从entity到dto,或者从dto到entity的中间的东西. 举个例子 ...
- input 上报流程图
input 上报流程图 http://blog.chinaunix.net/uid-28320320-id-3389196.html
- idea中classpath的问题
新创建的项目,在web.xml中配置 Spring MVC 的 DispatcherServlet,,指定springmvc.xml,结果这部分出错,请求的时候报错 结果查找,发现在Idea中,cla ...
- echarts-饼状图默认选中高亮
1.首页需要设置legend legend: { data: ["积极", "负面"], selectedMode: false, show: false } ...
- 处理H5新标签方法
语义化 HTML5中加入了更加具有语义化的标签,比如header,nav,footer等,可以为搜索引擎优化,让爬虫能更好地理解网页结构. 但是对于新标签的兼容性不是很好,IE9以下旧版本不支持新的语 ...