Python中的断言assert有什么用?

Python中的断言assert有什么用

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>
AssertionErrorCode 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.pyCode language: CSS (css)

发表评论