1

我今天在查看 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()会为您提供一个可能出现的统一异常,但除非您希望此函数在这种情况下静默失败以执行某些操作,否则您是否宁愿让它大声中断以便尽早发现此类错误?我从来不明白为什么人们在生产代码中使用断言。也许,我会在我得到一些答案后。

4

1 回答 1

2

对于您所描述的情况,我可以想象的唯一原因是也拒绝False, 0, [],(,)等。但是断言默认值是没有意义的。

如果作者不打算拒绝其他虚假值,那就assert更可疑了。

于 2010-06-24T21:31:50.223 回答