【Python】函数进阶 ④ ( Lambda 匿名函数 | 具名函数与匿名函数 | Lambda 函数定义语法 )

2023-10-11 18:28:33 浏览数 (2)

一、具名函数与匿名函数

在 Python 中 , 使用 def 关键字定义的函数 是 " 具名函数 " , 也就是有名字的函数 ;

与 " 具名函数 " 相对应的是 " 匿名函数 " ;

" 匿名函数 " 使用 lambda 关键字定义 , 也就是 没有名字的函数 ;

具名函数 可以 重复使用无数次 ;

匿名函数 只能 临时使用一次 ;

二、Lambda 函数定义语法

Lambda 函数 又称为 匿名函数 ;

Lambda 函数定义语法 :

代码语言:javascript复制
lambda arguments: expression

使用 lambda 关键字 定义 Lambda 函数 , 该关键字通常与 : 符号一起使用 ,

  • arguments 是 函数的形式参数,
  • expression 是 函数的实现 , 也就是函数体 , 该 函数体只能有一行代码 ;

Python 中的 Lambda 函数 的 函数体 只能是一行代码 , 无法在 Lambda 函数中写多行代码 ;

如果 函数要使用多次 , 或者函数体要写多行 , 需要使用 def 关键字定义具名函数 ;

Lambda 匿名函数定义示例 : 该 lambda 匿名函数接受两个参数 x 和 y , 然后返回它们的和 ;

代码语言:javascript复制
lambda x, y: x   y

这是 Lambda 函数单独使用的案例 ;

Lambda 函数可以单独使用 , 也可以作为其他函数或方法的一部分使用 ;

Lambda 函数作为函数参数使用案例 : 该 lambda 函数作用是 将列表中的每个元素转换为平方 , 使用 map 函数和 lambda 函数将列表中的每个元素转换为平方,并将结果存储在一个新列表中 ;

代码语言:javascript复制
squares = list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))  
print(squares)  # 输出 [1, 4, 9, 16, 25]

三、代码示例 - Lambda 函数定义语法

代码示例 :

代码语言:javascript复制
"""
函数多返回值 代码示例
"""


# 函数中接收另外一个函数作为函数
def caculate_num(action):
    result = action(4, 2)
    print(result)


# 匿名函数作为参数
caculate_num(lambda x, y: x   y)  # 6

caculate_num(lambda x, y: x - y)  # 2

caculate_num(lambda x, y: x * y)  # 8

caculate_num(lambda x, y: x / y)  # 2.0

执行结果 :

代码语言:javascript复制
D:01_Develop22_PythonPython39python.exe D:/002_Project/011_Python/HelloPython/Hello.py
6
2
8
2.0

Process finished with exit code 0

0 人点赞