python assert的用處


python assert 句語格式及用法很簡單。通常程序在運行完之后拋出異常,使用assert可以在出現有異常的代碼處直接終止運行。 而不用等到程序執行完畢之后拋出異常。

python assert的作用

python assert如果發生異常就說明表達示為假。可以理解表示式返回 值為假 時就會觸發異常。

assert語句的語法格式 

assert expression [, arguments]
assert 表達式 [, 參數]

附加說明:assert也可以用於多個表達式的: assert expression1, expression2。
注意:表達式=false 時,則執行其后面的異常。

我們看幾個示例
1:單個表達式:

a = 1
assert a < 0, '出錯了,a大於0 啊'
print('這里不會輸出')

輸出:

Traceback (most recent call last):
  File "main.py", line 3, in <module>
    assert a < 0, '出錯了,a大於0 啊'
AssertionError: 出錯了,a大於0 啊

2:多個表達式:

a = 1
b = -1
assert a > 0, b < 0
print('正常輸出,表達式返回真了') # 輸出:正常輸出,表達式返回真了

3:嘗試捕獲 assert 異常:

import traceback

try:
    assert a < 0
except AssertionError as aeeor:  # 明確拋出此異常
    # 拋出 AssertionError 不含任何信息,所以無法通過 aeeor.__str__()獲取異常描述
    print('AssertionError', aeeor, aeeor.__str__())

    # 通過 traceback 打印詳細異常信息
    print('traceback 打印異常')
    traceback.print_exc()
except:  # 不會命中其他異常
    print('assert except')

try:
    raise AssertionError('測試 raise AssertionError')
except AssertionError as aeeor:
    print('raise AssertionError 異常', aeeor.__str__())

輸出:

1 AssertionError
2 traceback 打印異常
3 Traceback (most recent call last):
4   File "main.py", line 7, in <module>
5     assert a < 0
6 AssertionError
7 raise AssertionError 異常 測試 raise AssertionError

4:函數調用拋出異常:

# 除法運算
def foo(value, divide):
    assert divide != 0
    return value / divide


print('4除以2 =', foo(4, 2))  # 執行成功
print('4除以0 =', foo(4, 0))  # 拋出異常

輸出:

1 4除以2 = 2.0
2 Traceback (most recent call last):
3   File "main.py", line 8, in <module>
4     print('4除以0 =', foo(4, 0))  # 拋出異常
5   File "main.py", line 3, in foo
6     assert divide != 0
7 AssertionError

通過上面幾個示例,相信大家也深刻理解aseert的用處了
總結: 表達式返回false 時。直接拋出異常終止繼續執行。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM