美文网首页
小解Lambda表达式(Lambda Expression)

小解Lambda表达式(Lambda Expression)

作者: LabVIEW_Python | 来源:发表于2018-06-14 15:49 被阅读17次

先说结论:若函数很小,且不想给函数起名字,可以用Lambda表达式

很多初学者很难理解,为啥不想给函数起名字呢?这有点儿类似,当你第一个小孩出生的时候,你会很用心的想怎么取名字,第二个小孩出生的时候,用心程度下降,... 第1000个小孩出生的时候,你会抓狂...你都不想动取名字的心思了,尽量简单就好。

Lambda函数的产生也类似,程序员在开发一个大型程序时,要写很多功能很小的函数,例如,可能3000个,若严格要求,每个函数都必须有自己独立的名字的话,那单就想名字的事情,就要死掉好多脑细胞了,所以,为了减轻程序员的负担,Python引入了Lambda表达式,对于小函数(small function),程序员又不想给它取名字的,可以用lambda表达式来创建匿名函数( anonymous function)

可以认为 Lambda Expression = antonymous function,如下图所示:

lambda parameters: expression 会产生一个函数对象,其功能类似于:

def<lambda> (parameters):

    return expression

注意:lambda表达式中,只能有expression(表达式),不能有statements(语句,例如if, while,for等)和annotations(注释)

Lambda expression的用途:Lambda expressions - also known as “anonymous functions” - allow you to create and use a function in a single line. They are useful when you need a short function that you will only use once,如下图所示:

通过函数为Lambda表达式传递参数的另外一个实例,如下图所示:

lambda函数

increase_from(n)函数返回一个函数对象给f,该函数对象(function object)由lambda表达式创建,其中的参数n,被increase_from(n)函数的输入参数n初始化。

相关文章

网友评论

      本文标题:小解Lambda表达式(Lambda Expression)

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