MST

星途 面试题库

面试题:Python中lambda与def在定义简单函数场景下的区别

请阐述在定义一个简单的单参数加法函数场景下,使用lambda和def定义的具体方式及两者在使用场景、语法结构、返回值等方面的区别。
23.7万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

使用lambda定义

add = lambda x: x + 1

使用def定义

def add(x):
    return x + 1

区别

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