Python-assertions-in-python
提供:Dev Guides
Pythonのアサーション
アサーションとは、プログラムのテストが完了したときにオンまたはオフにできる健全性チェックです。
アサーションを考える最も簡単な方法は、それを raise-if ステートメント(またはより正確に言えば、raise-if-notステートメント)に例えることです。 式がテストされ、結果が偽になると、例外が発生します。
アサーションは、バージョン1.5で導入されたPythonの最新のキーワードであるassertステートメントによって実行されます。
プログラマーは、有効な入力をチェックするために、および有効な出力をチェックするための関数呼び出しの後に、関数の先頭にアサーションを配置することがよくあります。
_assert_ステートメント
assert文が検出されると、Pythonは付随する式を評価しますが、これは正しいことです。 式が偽の場合、Pythonは_AssertionError exception_を発生させます。
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!