函数表达式通过封装条件逻辑实现动态执行路径,如 is_valid_age = lambda age: 18 ≤ age,以函数返回值驱动条件判断,替代静态 if 语句。

把条件逻辑包装成函数
不是写 if x > 5: 这样固定判断,而是定义一个函数,让它根据输入返回 True 或 False:
例如:
is_valid_age = lambda age: 18check_role = lambda user: user.get("role") == "admin"should_retry = lambda response: response.status_code in [429, 503]
用函数返回值控制 if/else 分支
函数调用发生在运行时,参数可变,因此判断是动态的:
比如:
if is_valid_age(user_age): do_something()if check_role(current_user): grant_admin_access()- 用户输入、API响应、配置开关等都可以作为函数参数,让条件真正“活”起来
结合高阶函数实现条件复用与组合
你可以把多个小条件函数组合成更复杂的判断逻辑:
例如:
and_condition = lambda f, g: lambda x: f(x) and g(x)or_condition = lambda f, g: lambda x: f(x) or g(x)is_adult_and_active = and_condition(is_valid_age, lambda u: u.get("active", False))
配合闭包实现带状态的条件初始化
函数表达式可捕获外部变量,在首次调用时完成“初始化”,后续调用复用该状态:
比如限制重试次数:
make_retry_checker = lambda max_retries=3: (lambda attempt: attempt-
can_retry = make_retry_checker(5)→ 每次调用can_retry(4)都基于初始化时设定的 5
本质上,这不是“初始化条件”,而是把条件的构建、求值和复用,交由函数在运行时按需完成——既清晰又灵活。

















