如何在含*args、**kwargs的函数中传入超3个参数时抛异常?
解决方案
完全可以实现,直接在指定位置添加参数数量校验逻辑即可:
def run_task(*args, **kwargs): jobserve_task_name = args[0] # 新增参数数量检查逻辑 total_param_count = len(args) + len(kwargs) if total_param_count > 3: raise ValueError("传入的总参数数量不得超过3个") parser_code, group_name, real_execution_intdate = _extract_celery_task_args(*args, **kwargs)
补充说明
len(args)统计所有位置参数的个数,len(kwargs)统计所有关键字参数的个数,两者之和即为传入的总参数数量- 若你的实际需求是排除第一个位置参数(jobserve_task_name)后,剩余参数总数不能超过3,只需将判断条件修改为:
if len(args[1:]) + len(kwargs) > 3: - 异常类型可根据业务需求调整,比如自定义业务异常类替代
ValueError
内容的提问来源于stack exchange,提问作者jikf
相关产品推荐
相关产品推荐

