【问题标题】:Python - Why the use of assert(required_param)?Python - 为什么使用 assert(required_pa​​ram)?
【发布时间】:2023-03-05 16:47:01
【问题描述】:

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

【问题讨论】:

    标签: python assert assertions


    【解决方案1】:

    对于您所描述的情况,我能想象的唯一原因是也拒绝False0[](,) 等。但是,反对默认设置是没有意义的价值。

    如果作者不打算拒绝其他虚假值,那么 assert 甚至更多可疑。

    【讨论】:

    • 但是在那种情况下,为什么不if not required_param: ... 我也认为这是粗略的。可能是作者忘记拿出来了?或者用信息更丰富的异常替换它?
    • 使用 assert 作为一个函数也是粗略的 - 见stackoverflow.com/questions/5142418/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    相关资源
    最近更新 更多