Python如何简化多变量相同条件校验并返回对应提示的重复代码?
Python重复None校验逻辑简化方案
方案1:直接遍历校验(最简洁,适合单场景使用)
把需要校验的变量和对应名称打包成元组列表,循环判断即可,逻辑和原代码完全一致:
for var, var_name in [(a, "a"), (b, "b"), (c, "c")]: if var is None: return f"Error - {var_name} has to be provided"
后续新增校验变量只需要在列表中添加对应元组即可,无需重复写if判断。
方案2:封装通用校验函数(适合多场景复用)
如果多个地方都需要做同类校验,可以封装成独立工具函数:
def validate_required_vars(pairs: list[tuple]): for var, name in pairs: if var is None: return f"Error - {name} has to be provided" return None # 调用示例 check_result = validate_required_vars([(a, "a"), (b, "b"), (c, "c")]) if check_result: return check_result
方案3:自动获取参数名(适合函数入参校验)
如果是校验函数的入参,不想手动写变量名,可以借助inspect模块自动获取本地参数,适合参数较多的场景:
import inspect def your_business_func(a, b, c): # 获取当前函数所有入参的键值对 local_args = inspect.currentframe().f_locals # 指定需要校验的参数名即可 for required_name in ["a", "b", "c"]: if local_args[required_name] is None: return f"Error - {required_name} has to be provided" # 后续业务逻辑
内容的提问来源于stack exchange,提问作者pelinoksuz
相关产品推荐
相关产品推荐

