我正在开发一个网络应用程序。用户可以设置一些参数来运行一些算法。因此,当我在后端提取参数时,我想在启动算法之前验证它们,这可能会在长时间执行后崩溃。我应该在算法函数周围使用装饰器,还是应该将参数传递给像 def validate_parameters() 这样的函数,如果参数不正确,它会引发错误?
1 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
Python 的“请求宽恕而不是许可”的经验法则是为了保持代码的简洁和易于理解。检查代码流程可以告诉您预期的路径是什么,并且很明显什么是异常条件。在这种情况下,不检查输入有两个缺点,并且您可以将所有检查隐藏在函数中,以便代码干净。我想说这里的 pythonic 代码是这样的
if not valididate_parameters(params): raise ValidationException(get_validation_error_msg(params))
这里你的validate_parameters
函数只是做检查。该get_validation_error_msg
函数负责生成可以呈现给用户的内容的繁重工作。例如,它可以检查验证函数在出现任何错误时尽早退出的所有参数。请注意,您必须将 Exception 定义ValidationException
为 Exception 的子类并在更高级别捕获它。
除了一般编程的想法之外,在 Django 中,如果您的参数来自用户填写的表单,您应该验证表单代码中的每个字段。
添加回答
举报
0/150
提交
取消