断言是一种健全性检查,可以在完成程序测试后打开或关闭。
想到断言的最简单方法是将其比喻为“引发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: 比绝对零还冷!