python之匿名函数lambda

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之匿名函数lambda相关的知识,希望对你有一定的参考价值。

lambda parameter:expression

其中lambda是声明一个匿名函数,parameter是这个函数有参数,可以有多少,中间用逗号隔开,expression是正则表达式

def compute(a,b,func):
    result = func(a,b)
    return result
num = compute(11,12,lambda x,y:x+y)
print(num)

方法compute有三个参数,从封装的代码中可以看到,compute把第三个参数用函数传入,再看代码的第四行,表达式是x+y,所以func参数的内容就是x+y,且需要传入两个参数分别为x,y,再看看第二行代码中传入两个参数是a,b,那么result = a + b,因为a = 11,b = 12,所以result等于23,所以num等于23,打印结果也就是23

下面做一下延伸:

def compute(a,b,func):
    result = func(a,b)
    return result
func_new = input("请输入一个匿名函数:")
num = compute(11,12,func_new)
print(num)

上面的代码就是说让我们输入一个函数,这样的话,你想让它实现加法,它就加法。想让它实现减法就实现减法。

不过它只能在2.7版本才可以用上面的代码,3.6的话就不行,因为input会把你输入的值都变成客串,也就是"lambda x,y:x+y",你让一个字符串去实现这个,不是搞笑吗?这时候我们就可以用到eval函数,这个函数很强大。它可以去除这字符串,让它变成一个可以被调用的函数,如下代码

def compute(a,b,func):
    result = func(a,b)
    return result
func_new = input("请输入一个匿名函数:")
func_new = eval(func_new)
num = compute(11,12,func_new)
print(num)


本文出自 “爱周瑜” 博客,请务必保留此出处http://izhouyu.blog.51cto.com/10318932/1967315

以上是关于python之匿名函数lambda的主要内容,如果未能解决你的问题,请参考以下文章

python之匿名函数lambda

Python 3 之 lambda匿名函数详解

python数据结构之匿名函数lambda

Python入门之经典函数实例——第2关:Lambda函数 - 匿名函数的使用

Python入门之经典函数实例——第2关:Lambda函数 - 匿名函数的使用

Python匿名函数