编程自学网编程自学网编程自学网

在Python中使用“assert”有什么用?

问题描述:

我一直在阅读一些源代码,在一些地方我已经看到了assert的用法。

这究竟是什么意思?它的用途是什么?


解决方法:

assert语句几乎存在于每种编程语言中。它有助于在程序的早期发现问题,原因很明显,而不是后来作为其他一些操作的副作用。

当你这样做......

assert condition

...您告诉程序测试该条件,如果条件为假,则立即触发错误。

在Python中,它大致相当于:

if not condition:    raise AssertionError()

在Python shell中尝试:

>>> assert True # nothing happens
>>> assert FalseTraceback (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__False,断言语句将被忽略。只需通过-O标志:

python -O script.py


未经允许不得转载:编程自学网 » 在Python中使用“assert”有什么用?