python assert的用處

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

python assert的做用 express

python assert若是發生異常就說明表達示爲假。能夠理解表示式返回 值爲假 時就會觸發異常。ide

assert語句的語法格式 函數

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

附加說明:assert也能夠用於多個表達式的: assert expression1, expression2。
注意:表達式=false 時,則執行其後面的異常。
測試

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

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

輸出:code

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

2:多個表達式:blog

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

3:嘗試捕獲 assert 異常:io

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__())

輸出:ast

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 時。直接拋出異常終止繼續執行。

相關文章
相關標籤/搜索