assert语句几乎存在于每种编程语言中。 当你做…
assert condition
…你告诉程序testing这个条件,如果条件是错误的,会触发一个错误。
在Python中,它大致相当于这个:
if not condition: raise AssertionError()
在Python shell中尝试:
>>> assert True # nothing happens >>> assert False Traceback (most recent call last): File "", line 1, in AssertionError
断言可以包含一个可选的消息,当你完成debugging时,你可以禁用它们。 在这里查看相关文件。
小心括号。 正如前面已经指出的那样, 在Python 3中, assert仍然是一个声明 ,所以通过类比print(..) ,可以推断相同的assert(..)或raise(..)但你不应该这样做。
这很重要,因为:
assert(2 + 2 == 5, "Houston we've got a problem")
不会工作,不像
assert 2 + 2 == 5, "Houston we've got a problem"
第一个不行的原因是bool( (False, "Houston we've got a problem") )评估为True 。
在声明assert(False) ,这些只是False周围的冗余括号ÿ