美文网首页Python开发(人工智能/大数据/机器学习)
13.Python编程:lambda表达式(匿名函数)

13.Python编程:lambda表达式(匿名函数)

作者: TensorFlow开发者 | 来源:发表于2018-04-04 15:32 被阅读6次

前面学习了Python中的函数,本文学习一下匿名函数。Python 使用 lambda 来创建匿名函数。所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
使用lambda时,要注意的是:
lambda 只是一个表达式,函数体比 def 简单很多。
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

格式:

lambda 函数的语法只包含一个语句,如下:

lambda [arg1 [,arg2,.....argn]]:expression

注意:
关键字lambda表示匿名函数,冒号前面的表示函数的参数,可以传入任意个。
匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。
用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数。

例如:

my_sum = lambda arg1, arg2 : arg1 + arg2

# 调用lambda表达式,并打印结果
print("lambda 表达式计算: ",  my_sum(20, 30))
print("lambda 表达式计算: ",  my_sum(30, 40))

运行结果:

lambda 表达式计算:  50
lambda 表达式计算:  70

小结:
Python 使用 lambda 来创建匿名函数。lambda 只是一个表达式,函数体比 def 简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数。


更多了解,可关注公众号:人人懂编程


微信公众号:人人懂编程

相关文章

  • Lambda

    Lambda表达式 Lambda表达式其实是一个匿名函数,是对匿名内部类的一种简化 Lambda表达式是函数式编程...

  • 深入浅出的了解C# Lambda表达式

    Lambda表达式 "Lambda表达式"是一个匿名函数,是一种高效的类似于 函数式编程的表达式,Lambda简化...

  • Python基础——匿名函数+作用域

    一、匿名函数:lambda 函数名 = lambda 参数: 表达式 1、有名函数 2、匿名函数lambda [ ...

  • 2018-04-21 开胃学习.Net 系列 - C# lamb

    定义:"Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式 好处:Lambda简化了匿名委托...

  • lambda表达式

    什么是lambda表达式 lambda表达式的本质 lambda表达式是一种匿名函数,匿名函数是函数定义不绑定到任...

  • Python中的匿名函数(lambda表达式)

    一、lambda表达式 lambda表达式,又称匿名函数,是现代各种编程语言争相引入的一种语法,其功能堪比函数,设...

  • 《深入理解Java函数式编程》系列文章

    《深入理解Java函数式编程》系列文章 目录 Lambda表达式和匿名内部类(I),展示如何使用Lambda表达式...

  • python基础--匿名函数&高阶函数

    lambda表达式返回匿名函数 python使用lambda创建匿名函数,lambda的主题是一个表达式而不是代码...

  • Lambda表达式的使用

    .NET中Lambda表达式 lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambd...

  • Java 函数式编程技能清单

    首先,了解匿名内部类,函数式接口1、熟练使用Lambda表达式编程掌握Lambda表达式编写方法,方法引用,默认方...

网友评论

    本文标题:13.Python编程:lambda表达式(匿名函数)

    本文链接:https://www.haomeiwen.com/subject/mqdkhftx.html