1. 程式人生 > >Python assert 斷言

Python assert 斷言

assert斷言語句用來宣告某個條件是真的,其作用是測試一個條件(condition)是否成立,如果不成立,則丟擲異常。

assert一般用法:

assert condition

如果condition為false,就raise一個AssertionError出來。邏輯上等同於:
if not condition:
    raise AssertionError()

另一種使用方法:

assert condition,expression

如果condition為false,就raise一個描述為 expression 的AssertionError出來。邏輯上等同於:
if not condition:
        raise AssertionError(expression)



assert使用示例:

# -*- coding: utf-8 -*-

v1 = 1
v2 = 2

assert (v1 < v2)
# assert (v1 > v2)
assert (v1 > v2),'{0} is not bigger than {1}'.format(v1,v2)

以上程式碼丟擲異常:

Traceback (most recent call last):
  File "xxx", line 8, in <module>
    assert (v1 > v2),'{0} is not bigger than {1}'.format(v1,v2)
AssertionError: 1 is not bigger than 2

斷言跟異常的區別:

斷言是用來檢查非法情況而不是錯誤情況的,用來幫開發者快速定位問題的位置。
異常處理用於對程式發生異常情況的處理,增強程式的健壯性和容錯性。


對一個函式而言,一般情況下,斷言用於檢查函式輸入的合法性,要求輸入滿足一定的條件才能繼續執行;
在函式執行過程中出現的異常情況使用異常來捕獲。