今天我在查看API的库时发现了这一点。
def my_function(self, required_param=None):
assert(required_param)
... Do cool function stuff
这样做会不会更容易:
def my_function(self, required_param):
... Do cool function stuff
或者,我错过了什么?
assert()
当然会给你一个可能出现的统一异常,但除非你希望这个函数在这种情况下无声地失败才能做某事,你宁愿让它大声突破以便你可以早期发现这样的错误?我永远不明白为什么人们在生产代码中使用断言。也许,我会在得到一些答案之后。
答案 0 :(得分:2)
我能够想象你所描述的情况的唯一原因是拒绝False
,0
,[]
,(,)
等等。但这并不是'对断言默认值有意义。
如果作者不打算拒绝其他虚假值,那么assert
甚至更多可疑。