例如,我有一个函数,它生成程序噪音def procedural_noise(width, height, seed):
...
此函数的所有参数都应为正。我想,我需要检查它,如果on of parameters是非正的,则抛出异常。这是一种好的(Python式的)方法吗?在
让我们假设,我是对的。检查参数的最佳方法是什么?
我可以为每个参数编写跳棋:
^{pr2}$
对于程序员来说,什么时候他会得到异常,他应该纠正什么,这应该是清楚的,但在我看来这并不好看。在
以下代码比较简单,但离理想状态太远了:def procedural_noise(width, height, seed):
if width <= 0 or height <= 0 or seed <= 0:
raise ValueError("All of the parameters should be positive")
...
最后一个问题:使用检查参数类型及其值的unittest框架编写测试的最佳方法是什么?
我可以在测试类中编写以下函数:def test_positive(self):
self.assertRaises(ValueError, main.procedural_noise, -10, -10, 187)
这是正确的解决方案吗?在
UPD:我对所有答案投了赞成票,因为每个答案都有对我有用的信息,但我不能从中选出最好的答案(我想明天选出投票最多的问题是公平的)