Pythonのassert文(アサーション)とは?条件チェックでバグを防ごう
assert文(アサーション)は、「この条件が必ず満たされているはずだ」という前提をコードの中でチェックするための構文です。
条件が成り立たない場合には、自動的にAssertionError を発生させてプログラムを停止させます。
基本構文
assert 条件式
条件式が False
になると、AssertionError という例外が発生します。
例:
x = 10
assert x > 0
print("xは正の数です。")
この例では x > 0
が成り立つため、プログラムはそのまま進みます。
エラーメッセージを追加する
assert x > 0, "xは0以下です!"
条件が満たされないときに表示されるカスタムエラーメッセージを追加することもできます。
実行時の使いどころ
- 関数の引数チェック
- アルゴリズム中間の状態確認
- 開発・テスト時の前提条件の検証
例:関数の中で使う
def divide(a, b):
assert b != 0, "0で割ることはできません"
return a / b
注意点:本番環境では無効になることも
assert
は 最適化オプション(-O)付きでPythonを実行した場合、無効化されます。
そのため、重要なエラーチェックには try / except を使うべきです。
まとめ
Pythonの assert文 は、プログラム中の前提条件が正しいことを確認するための便利なツールです。
特に開発やテスト段階でのバグ防止や原因の特定に効果を発揮します。
ただし、本番環境では無効になる可能性があるため、本質的なエラーチェックには不向きである点に注意しましょう。