assert语句几乎存在于每种编程语言中。它有两个主要用途:
它有助于在程序的早期发现问题,原因是明确的,而不是稍后在某些其他操作失败时。
例如,Python 中的类型错误可能会经过几层代码才会抛出Exception
当你这样做…
assert condition
…你告诉程序测试该条件,如果条件为假,则立即触发错误。
在 Python 中,它大致相当于:
if not condition:
raise AssertionError()
在 Python shell 中尝试:
>>> assert True # nothing happens
>>> assert False
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError
Code language: PHP (php)
断言可以包含可选消息,你可以在运行解释器时禁用它们。
如果断言失败,打印一条消息:
assert False, "Oh no! This assertion failed!"
Code language: PHP (php)
不要像函数一样使用括号来调用assert。它是一个声明。如果这样做assert(condition, message)
,你将使用一个(condition, message)
元组作为第一个参数来运行assert。
如何在Python中禁用断言
当python在optimized 模式下运行时, 如果 debug为 False, assert 语句将被忽略。只需传递-O标志:
python -O script.py
Code language: CSS (css)