You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化判断多变量是否为None并取首个非None值的代码使其更短

优化实现方案

写法1:or 短路表达式(适用非None值均为真值的场景)

如果date_a、date_b、date_c的合法有效值都是Python真值(比如正常日期对象、非空日期字符串,不存在0、空串、False这类合法取值),可以直接用短路逻辑一行实现,执行逻辑和你原有代码完全一致:

start_date = date_a or date_b or date_c or current_date

写法2:next + 生成器(严格匹配原判断逻辑)

如果需要严格只过滤None,允许合法有效值为布尔假值(比如用0表示特殊日期、空串为合法值等),可以用下面的写法,完全对齐你原有代码的判断规则:

start_date = next(x for x in [date_a, date_b, date_c, current_date] if x is not None)

该写法会从左到右遍历列表,返回第一个不为None的值,因为列表末尾放置了必然不为None的current_date,不会抛出遍历为空的异常。

内容的提问来源于stack exchange,提问作者Forna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 07:36:01