匿名函数

目标:

  1. 掌握如何定义匿名函数
  2. 知道匿名函数的基本使用

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)