1.匿名函数概念
匿名:没有名字的函数
2.匿名函数定义
在讲匿名函数定义之前我们先来看一段js的匿名函数定义:
faction 函数名称 (参数) {
//代码块
return 返回值
}
#js匿名函数
faction (参数) {
//代码块
return 返回值
}
是不是很简单,如果把def换成faction就…当然不行,python并不支持这种用法
#python中
def 函数名(参数):
#代码块
return 返回值
#不支持,需要借用lambda表达式
def(参数):
#代码块
return 返回值
python匿名函数 | lambda表达式 |
---|
lambda表达式也称箭头函数,最早出现在c++
3.lambda 语法格式
lambda :代码块 如果有返回值就写,没有就不写
如:
def sum(a,b,c):
return a + b + c
sum_lambda=lambda a,b,c:a + b + c
print(sum_lambda(1,100,1000))
print(sum(1,100,1000))
结果 |
---|
1101 |
1101 |
4.匿名函数参数个数
1.无参数情况
a_lambda=lambda:100
print(a_lambda())
2.1个参数情况
a_lambda=lambda a:a * 100
print(a_lambda(a))
3.有多个参数的情况
sum_lambda=lambda a,b,c:a + b + c
print(sum_lambda(1,100,1000))
print(sum(1,100,1000))
4.跟表达式的情况
c_lambda=lambda x:x if x % 2==0 else x+1
print(c_lambda(6))
print(c_lambda(7))
5.lambda作为参数传递
def sub(a,b,func):
print("a=",a)
print("b=",b)
print("c=",func(a,b))
sub(3,4,lambda a,b:a-b)
6.lambda作为返回值
def run(a,b):
return lambda c:a + b + c
return_fun = run(1,1000)
print(return_fun)
print(run)
print(return_fun(100))
哈哈,本质上是生成了一个函数