匿名:没有名字的函数
匿名函数的定义
在讲匿名函数定义之前我们先来看一段js的匿名函数定义:
faction 函数名称 (参数) {
//代码块
return 返回值
}
#js匿名函数
faction (参数) {
//代码块
return 返回值
}
是不是很简单,如果把def换成faction就…当然不行,python并不支持这种用法
#python中 def 函数名(参数): #代码块 return 返回值 #不支持,需要借用lambda表达式 def(参数): #代码块 return 返回值
| python匿名函数 | lambda表达式 |
|---|
lambda表达式也称箭头函数,最早出现在c++
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 |
匿名函数参数个数
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))
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)
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))
哈哈,本质上是生成了一个函数



