Python断言

断言是一种健全性检查,可以在完成程序测试后打开或关闭。

想到断言的最简单方法是将其比喻为“引发if”语句(或更准确地说,是“引发if-not”语句)。测试表达式,如果结果为假,则引发异常。

断言由assert语句执行,assert语句是Python的最新关键字,在1.5版中引入。

程序员通常将断言放在函数的开头以检查有效输入,而在函数调用之后则进行断言以检查有效输出。

断言

当遇到断言语句时,Python会评估附带的表达式,希望它是正确的。如果表达式为假,则Python引发AssertionError异常。

assert的语法是-

assert Expression[, Arguments]

如果断言失败,Python将ArgumentExpression用作AssertionError的参数。可以使用try-except语句像其他任何异常一样捕获和处理AssertionError异常,但是如果不处理,它们将终止程序并产生回溯。

示例

这是将温度从开氏度转换为华氏度的函数。由于开氏温度为零,因此温度会尽可能低,因此如果看到负温度,该函数将失效-

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
assert (Temperature >= 0),"比绝对零还冷!"
return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)

输出结果

执行以上代码后,将产生以下结果-

32.0
451
Traceback (most recent call last):
File "test.py", line 9, in <module>
print KelvinToFahrenheit(-5)
File "test.py", line 4, in KelvinToFahrenheit
assert (Temperature >= 0),"比绝对零还冷!"
AssertionError: 比绝对零还冷!