【发布时间】:2018-01-23 18:41:31
【问题描述】:
raise AssertionError 和 assert 构建“故障”之间的最大区别是什么?对代码有什么影响?在某种程度上,其中一个或另一个更 Pythonic 吗?
我提出这个问题的原因是因为我正在学习编程。现在我们有一个练习,例如当x != 0 我们需要得到一个AssertionError "false"。
我在网上查了一下,发现如下代码:
if x != 0:
raise AssertionError ("false")
但我的老师也经常使用以下内容:
assert x == 0,"fout"
每种方法的(缺点)优点是什么?
非常感谢。
【问题讨论】:
-
你能详细说明你的问题吗?通常,断言用于测试代码和查找错误。
assert语句可以用编译器标志忽略。 -
@juanpa.arrivillaga 我解释了一点。希望这会有所帮助:)
-
正如 juanpa 解释的那样,
assert语句通常用于在开发过程中进行单元测试或发现问题。这并不意味着您一定会看到错误。另一方面,引发AssertionError意味着错误将由代码引发,并且任何调用进程都可以根据需要处理此错误。 -
@Brandon Barney。因此,如果我得到了正确的答案,那么您在开发过程中使用断言,但是对于完成的程序,您使用 Assertionerror。还是不完全?你能举一个没有看到错误的例子吗?我不太明白这是怎么发生的..
标签: python error-handling assert