Python-为什么使用assert(必需参数)?
我今天在查看API库时发现了这一点Python-为什么使用assert(必需参数)?,python,assert,assertions,Python,Assert,Assertions,我今天在查看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()会给您一个可能出现的统一异常,但是除非您希望此函数在
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()
会给您一个可能出现的统一异常,但是除非您希望此函数在这种情况下以静默方式失败,否则您不希望它被大声打断,以便尽早发现此类错误吗?我一直不明白人们为什么在生产代码中使用断言。也许,在我得到一些答案之后,我会这样做。我所能想象的你所描述的情况的唯一原因是也拒绝False
,0
,[]
,(,)
,等等。但是,对默认值进行断言是没有意义的
如果作者不打算拒绝其他虚假的ish值,那么
assert
就更加可疑了。但是在这种情况下,为什么不If not required\u param:…
我也认为这是粗略的。也许作者忘了把它拿出来?或者用信息更丰富的异常替换它?将assert用作函数也很粗略-请参阅