【发布时间】:2015-03-22 21:16:17
【问题描述】:
我有一点关于参数验证的风格问题。
(使用 Python)
假设我有一个带有参数a 的方法,它需要是一个 int,并且可能需要在某个范围内 - 即列表索引或其他东西。我可以使用断言/其他验证来确保这一点,但是如果我只从一个或两个地方调用该函数,并且在那里将参数验证为正确的值/类型怎么办?也许将来可以从其他地方调用该函数,但目前,“基本上”不可能传递无效参数。
感觉没有必要将验证代码添加到并不真正需要它的东西上,但如果从其他地方调用该函数以引发未捕获的错误,这似乎也很草率。
对不起,如果这太抽象了 - 我希望答案可能只是“视情况而定”,但我很好奇是否对此达成了普遍共识。
【问题讨论】:
-
这真的取决于。在大多数情况下,我会保持函数简单,并使用单元测试解决可能出现的问题。对于来自“不可预测的来源”(例如用户)的参数,我可能使用“完整”验证(并使用单元测试对其进行测试)。
-
如果用户输入会引发错误,请捕获并处理它。
-
你有生活中的例子吗?如果不是,答案将是“视情况而定”
标签: python validation parameters