Python限制函数传入args数量时应使用哪种合适的base error
Python限制*args参数数量的推荐抛出异常类型
最合适的内置基础异常是TypeError。
这个选择完全贴合Python自身的内置行为:当你给普通固定参数的函数传入数量不匹配的参数时,Python解释器原生抛出的就是TypeError,符合所有Python开发者的常规认知,不需要额外做异常说明就能让其他使用者快速理解错误原因。
你可以按照如下方式编写代码:
def func(*args): if len(args) == 1: # Do one thing pass elif len(args) == 2: # Do another thing pass else: raise TypeError(f"func() takes 1 or 2 positional arguments but {len(args)} were given")
不建议选择ValueError,该异常一般用于参数类型正确但取值不符合要求的场景,和参数数量不匹配的场景不贴合。如果你的项目有统一的自定义异常规范也可以自定义对应异常,否则直接用TypeError是最优选择。
内容的提问来源于stack exchange,提问作者Miguel Gonzalez
相关产品推荐
相关产品推荐

