如何为Python函数输入缺失场景添加安全失败容错处理机制
实现方案
我们可以在函数开头先对输入做合法性校验,命中None/NaN的异常场景时直接返回预设的默认值即可,具体实现如下:
import math def obtain_value(input_value): # 处理异常输入场景 if input_value is None or (isinstance(input_value, float) and math.isnan(input_value)): # 安全失败的返回值可根据业务需要调整,此处示例返回默认值5 return 5 return max(input_value, 5)
注意事项
- 优先判断
input_value is None,避免后续对None做类型判断、方法调用时报错 - 不能直接用
== float('nan')判断NaN,NaN的特性是和任意值(包括自身)相等判断都返回False,必须通过math.isnan()方法判定 - 调用
math.isnan()前先校验输入为float类型,避免传入整数、字符串等其他类型时触发类型错误
测试用例参考
obtain_value(3)→ 返回 5obtain_value(8)→ 返回 8obtain_value(None)→ 返回 5,无异常抛出obtain_value(float('nan'))→ 返回5,无异常抛出
内容的提问来源于stack exchange,提问作者StackUser
相关产品推荐
相关产品推荐

