python lambda 多行,关于python的lambda函数

  python lambda 多行,关于python的lambda函数

  Lambda表达式是现代编程语言引入的一种语法。如果函数是一个方便重用的命名代码块,那么lambda expression就是一个工作更灵活,可以在程序中调用的代码块。

  在局部函数回顾的《Python函数高级用法》节中,get_math_func)函数返回三个局部函数中的一个。功能代码如下:

  def get_math_func(类型) :

  #定义三个局部函数。

  #返回本地函数

  如果type==square :

  返回队列

  if type==cube :

  返回多维数据集

  否则:

  返回工厂

  这三个局部函数的函数名太有限了,因为默认情况下,局部函数的作用域会保留在封闭函数中。也就是说,它只在程序的if语句中作为返回值使用。如果离开get_math_func()函数体,这三个局部函数的函数名就失去了意义。

  因为局部函数的函数名没有任何意义,所以我们考虑使用lambda表达式来简化局部函数的编写。

  通过使用lambda表达式而不是局部函数的表达式来简化get_math_func()函数,程序可以重写如下:

  Get _ math _ func (type): result=1 #如果type== square :return lambdan 3360n * n # n(else:return lambdan:(1n)n/2)# get _ math _ func程序是嵌套函数math _ func=get _ math _ func(cubbbbbutt output 125 math _ func=get _ math _ func)。output 25 math _ func=get _ math _ func(other)(print)math _ func)5 #

  注意:由于lambda表达式只能是单行表达式,不允许更复杂的函数格式,所以上面的第一段代码改为计算1 ^ 2 ^ 3…n的和。

  lambda表达式的语法格式如下:

  lambda[参数列表]:表达式

  从上面的语法格式可以看出lambda表达式的几个要点。

  Lambda表达式必须用lambda关键字定义。在lambda关键字之后,冒号的左边是一个参数列表。没有参数,也可以有多个参数。如果有多个参数,它们必须用逗号分隔。冒号右边是lambda表达式的返回值。其实lambda表达式的本质是匿名单行函数体的函数。所以lambda表达式可以写成函数的形式。例如,对于以下lambda表达式:

  x,y:x y

  可以重写为以下函数格式:

  Add (x,y):返回x y

  定义上述函数时,使用简化的语法。如果函数体中只有一行代码,可以直接将函数体中的代码放在与函数开头相同的行中。

  一般函数比lambda表达式适应性更强,lambda表达式只能创建简单的函数对象(仅在函数体为单行时适用)。但是,公式仍有以下两种用途:

  对于单行函数,使用lambda表达式可以跳过定义函数的过程,从而简化代码。对于不需要多次重用的函数,lambda表达式用完之后可以立即释放,从而提高性能。下面的代码展示了如何使用lambda表达式调用Python的内置map()函数。

  计算# square的lambda表达式定义为参数x=map(x:x * x,range (8)) print] [eforeinx] ([0,1,4,9,16,25,36,49]# two range(8)print)[efore iny](0这里是传递函数的简化形式,lambda表达式。这样可以使程序更加简洁,提高性能。

  本节介绍的Lambda表达式是Python编程的核心机制之一。Python语言既支持面向过程编程,也支持面向对象编程。Lambda表达式是Python面向过程编程的语法基础,读者一定要注意。

  因为Python的lambda表达式是单行函数的简化版,所以lambda表达式的功能相对简单。

  推荐目录:围绕Python项目的傲书面试问题

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: