该assert
语句几乎存在于每种编程语言中。它有助于在程序中尽早发现问题,找出原因,而不是在其他操作后再发现问题。
当你做…
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
断言可以包含可选消息,并且您可以在运行解释器时将其禁用。
要在断言失败时打印消息:
assert False, "Oh no! This assertion Failed!"
千万 使用括号调用assert
的功能等。这是一个声明。如果你这样做assert(condition, message)
你会运行assert
一个(condition, message)
元组的第一个参数。
至于禁用它们,python
在优化模式下运行__debug__
is时False
,assert语句将被忽略。只要通过-O
标志:
python -O script.py
有关相关文档,请参见此处。