断言是一种健全的检查,当您完成对程序的测试时,您可以打开或关闭它。
思考断言的最简单方法是将其比作raise-if语句(或者更准确地说,是raise-if-not语句)。测试表达式,如果输出为false,则引发异常。
断言由ASSERT语句执行,这是Python在1.5版中引入的最新关键字。
程序员通常将断言放置在函数的开头以检查有效的输入,并在函数调用之后放置断言以检查有效的输出。
The assert Statement
当遇到Assert语句时,Python会计算相应的表达式,希望是真的。如果表达式为false,Python将引发AssertionError异常。
Assert语法是−
assert Expression[, Arguments]
如果断言失败,Python将使用ArgumentExpression作为AssertionError的参数。AssertionError异常可以像使用TRY-EXCEPTION语句一样捕获和处理任何其他异常,但如果不处理,它们将终止程序并生成回溯。
Example
这是一个将温度从开氏温度转换为华氏温度的函数。由于零度开尔文是最冷的,如果函数看到负温度−,它就会跳出来
#!/usr/bin/pythondef 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!