该assert语句几乎存在于每种编程语言中。它有助于在程序的早期发现问题,原因很明显,而不是后来作为其他一些操作的副作用。
当你这样做......
assert condition
...您告诉程序测试该条件,如果条件为假,则立即触发错误。
在Python中,它大致相当于:
if not condition:
raise AssertionError()
在Python shell中尝试:
>>> assert True # nothing happens
>>> assert False
Traceback (most recent call last):
File "", line 1, in
AssertionError
断言可以包含可选消息,您可以在运行解释器时禁用它们。
要在断言失败时打印消息:
assert False, "Oh no! This assertion failed!"
千万不能使用括号调用assert的功能等。这是一份声明。如果你这样做,assert(condition, message)你将assert使用(condition, message)元组作为第一个参数运行。
至于禁用它们,运行时,python在优化模式,其中__debug__是False,断言语句将被忽略。只要通过-O旗帜:
python -O script.py
请参阅此处获取相关文档。