Python 中的断言
pythonserver side programmingprogramming
断言是一种健全性检查,您可以在完成程序测试后将其打开或关闭。
理解断言的最简单方法是将其比作 raise-if 语句(或者更准确地说,raise-if-not 语句)。测试表达式,如果结果为假,则引发异常。
断言由 assert 语句执行,assert 语句是 Python 1.5 版中引入的最新关键字。
程序员通常将断言放在函数的开头以检查输入是否有效,并在函数调用之后检查输出是否有效。
assert 语句
当遇到 assert 语句时,Python 会评估随附的表达式,希望该表达式为真。如果表达式为假,Python 会引发 AssertionError 异常。
assert 的语法为 −
assert Expression[, Arguments]
如果断言失败,Python 将使用 ArgumentExpression 作为 AssertionError 的参数。AssertionError 异常可以像任何其他异常一样使用 try-except 语句进行捕获和处理,但如果不处理,它们将终止程序并产生回溯。
示例
这是一个将温度从开尔文度转换为华氏度的函数。由于零开尔文温度是最冷的,因此如果函数看到负温度 −,它就会退出。
#!/usr/bin/python def KelvinToFahrenheit(Temperature): assert (Temperature >= 0),"Colder than absolute zero!" 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),"Colder than absolute zero!" AssertionError: Colder than absolute zero!