在Python中使用assert的示例?

Col*_*lin 10 python assert exception

我已经读过关于何时使用assert vs. exception,但我仍然没有"得到它".似乎每当我认为我应该使用assert时,稍后在开发中我会发现我在"跳跃之前""以确保断言在调用函数时不会失败.由于还有另一个关于更喜欢使用try-except的Python习惯用法,我通常最终会放弃断言并抛出异常.我还没有找到一个使用断言似乎正确的地方.谁能想出一些好的例子?

Eli*_*sky 22

assert当它的触发意味着你的代码中存在错误时,一个很好的指导原则正在使用.当您的代码假定某些内容并根据假设进行操作时,建议使用a来保护此假设assert.这种assert失败意味着您的假设不正确,这意味着您的代码不正确.


fse*_*eto 15

倾向于使用断言检查应该永远不会发生的事情.有点像理智检查.

要实现的另一件事是在优化时删除断言:

在编译时请求优化时,当前代码生成器不会为assert语句发出任何代码.

  • 如果使用`-O`标志调用Python,则指示删除该断言的+1.关键在于,如果你*期望*你的代码在你接受断言时表现不同,那么你就会误用它们 - 它们仅用于调试. (4认同)