匿名函数
目标:
- 掌握如何定义匿名函数
- 知道匿名函数的基本使用
1. lambda语法
用lambda关键词能创建小型匿名函数, 这种函数得名于省略了用def声明函数的标准步骤.
lambda 参数列表 : 表达式
注意
- lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用。
- lambda表达式能接收任何数量的参数但只能返回一个表达式的值。
快速入门
# 函数
def fn1():
return 200
print(fn1)
print(fn1())
# lambda表达式
fn2 = lambda: 100
print(fn2)
print(fn2())
注意:直接打印lambda表达式,输出的是此lambda的内存地址
2. 示例:计算a + b
函数实现
def add(a, b):
return a + b
result = add(1, 2)
print(result)
思考:需求简单,是否代码多?
lambda实现
fn1 = lambda a, b: a + b
print(fn1(1, 2))
3. lambda的应用
在之前的参数学习时, 参数只能是一个具体的数值, 字符串. 然而很多时候我们可能需要的参数不仅仅值一个简单的数值而已, 有可能是一种算法, 一个公式, 一种功能. lambda表达式就可以作为参数来使用, 这样去传递参数不仅仅传递的是某个数值.
# func函数相当于一个计算器
def func(count):
a = 10
b = 20
result = count(a, b)
print(result)
# 传递相加
func(lambda a, b: a + b)
# 传递相减
func(lambda a, b: a - b)
# 传递相乘
func(lambda a, b: a * b)
# 传递相除
func(lambda a, b: a / b)