面试题答案
一键面试使用lambda定义
add = lambda x: x + 1
使用def定义
def add(x):
return x + 1
区别
- 使用场景:
- lambda:适用于简单、临时性、不需要复杂逻辑和函数名复用的场景,如作为其他函数(如
map
、filter
、sorted
等)的参数。 - def:适用于逻辑复杂、需要详细文档说明、可复用性高的场景。
- lambda:适用于简单、临时性、不需要复杂逻辑和函数名复用的场景,如作为其他函数(如
- 语法结构:
- lambda:语法简洁,没有函数体,只有一个表达式,以
lambda
关键字开头,后跟参数列表和表达式,中间用冒号分隔。 - def:语法完整,有函数名、参数列表、函数体,使用
def
关键字定义函数,函数体通过缩进表示。
- lambda:语法简洁,没有函数体,只有一个表达式,以
- 返回值:
- lambda:表达式的结果就是返回值,无需显式使用
return
关键字。 - def:需要显式使用
return
关键字返回值,如果没有return
语句,默认返回None
。
- lambda:表达式的结果就是返回值,无需显式使用