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

Python 3.11中是否有简化非None取值代码的类似方法?

Python 3.11 简化非空判断的写法

针对你提到的safe_value = value if value is not None else default这段代码,Python 3.11里并没有像字典get()方法那样专门的内置语法或函数直接简化,但可以通过以下几种方式实现更简洁的写法:

  • 分场景使用or运算符:如果你的value不会是其他布尔假值(比如0、空字符串""、空列表[]这类),可以用safe_value = value or default。但要注意,这个写法和原逻辑不完全等价——原代码只排除None,而or会把所有布尔值为False的对象都替换成default。
  • 调整三元表达式顺序:把条件换个顺序,写成safe_value = default if value is None else value,写法上稍微紧凑一点,本质还是三元表达式,但阅读起来更顺畅。
  • 封装自定义函数:如果需要频繁复用这个逻辑,完全可以自己封装一个类似字典get()的函数,复用性拉满:
    def get_safe(value, default):
        return value if value is not None else default
    
    之后直接用safe_value = get_safe(value, default)调用,和字典get()的使用逻辑一致,简洁又清晰。

另外提一句,Python 3.10+新增的match语句也能实现,但写起来反而更啰嗦,完全没必要用在这里:

match value:
    case None:
        safe_value = default
    case _:
        safe_value = value

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:54:54