python assert的用處示例詳解
使用assert斷言是學(xué)習(xí)python一個非常好的習(xí)慣,python assert 斷言句語格式及用法很簡單。在沒完善一個程序之前,我們不知道程序在哪里會出錯,與其讓它在運(yùn)行最崩潰,不如在出現(xiàn)錯誤條件時(shí)就崩潰,這時(shí)候就需要assert斷言的幫助。本文主要是講assert斷言的基礎(chǔ)知識。
python assert斷言的作用
python assert斷言是聲明其布爾值必須為真的判定,如果發(fā)生異常就說明表達(dá)示為假??梢岳斫鈇ssert斷言語句為raise-if-not,用來測試表示式,其返回值為
下面通過實(shí)例代碼介紹下python assert 作用,具體內(nèi)容如下所示:
python assert 句語格式及用法很簡單。通常程序在運(yùn)行完之后拋出異常,使用assert可以在出現(xiàn)有異常的代碼處直接終止運(yùn)行。 而不用等到程序執(zhí)行完畢之后拋出異常。
python assert的作用
python assert如果發(fā)生異常就說明表達(dá)示為假??梢岳斫獗硎臼椒祷?值為假 時(shí)就會觸發(fā)異常。
assert語句的語法格式
assert expression [, arguments] assert 表達(dá)式 [, 參數(shù)]
附加說明:assert也可以用于多個表達(dá)式的: assert expression1, expression2。
注意:表達(dá)式=false 時(shí),則執(zhí)行其后面的異常。
我們看幾個示例
1:單個表達(dá)式:
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:多個表達(dá)式:
a = 1 b = -1 assert a > 0, b < 0 print('正常輸出,表達(dá)式返回真了') # 輸出:正常輸出,表達(dá)式返回真了
3:嘗試捕獲 assert 異常:
import traceback try: assert a < 0 except AssertionError as aeeor: # 明確拋出此異常 # 拋出 AssertionError 不含任何信息,所以無法通過 aeeor.__str__()獲取異常描述 print('AssertionError', aeeor, aeeor.__str__()) # 通過 traceback 打印詳細(xì)異常信息 print('traceback 打印異常') traceback.print_exc() except: # 不會命中其他異常 print('assert except') try: raise AssertionError('測試 raise AssertionError') except AssertionError as aeeor: print('raise AssertionError 異常', aeeor.__str__())
輸出:
AssertionError traceback 打印異常 Traceback (most recent call last): File "main.py", line 7, in <module> aAssertionError raise AssertionError 異常 測試 raise AssertionErrorssert a < 0
4:函數(shù)調(diào)用拋出異常:
# 除法運(yùn)算 def foo(value, divide): assert divide != 0 return value / divide print('4除以2 =', foo(4, 2)) # 執(zhí)行成功 print('4除以0 =', foo(4, 0)) # 拋出異常
輸出:
4除以2 = 2.0 Traceback (most recent call last): File "main.py", line 8, in <module> print('4除以0 =', foo(4, 0)) # 拋出異常 File "main.py", line 3, in foo assert divide != 0 AssertionError
通過上面幾個示例,相信大家也深刻理解aseert的用處了
總結(jié): 表達(dá)式返回false 時(shí)。直接拋出異常終止繼續(xù)執(zhí)行。
以上所述是小編給大家介紹的python assert的用處示例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
python讀寫刪除復(fù)制文件操作方法詳細(xì)實(shí)例總結(jié)
這篇文章主要介紹了python讀寫刪除復(fù)制文件操作方法詳細(xì)實(shí)例總結(jié),需要的朋友可以參考下2021-04-04關(guān)于你不想知道的所有Python3 unicode特性
我的讀者知道我是一個喜歡痛罵Python3 unicode的人。這次也不例外。我將會告訴你用unicode有多痛苦和為什么我不能閉嘴。我花了兩周時(shí)間研究Python3,我需要發(fā)泄我的失望。在這些責(zé)罵中,仍然有有用的信息,因?yàn)樗涛覀內(nèi)绾蝸硖幚鞵ython3。如果沒有被我煩到,就讀一讀吧2014-11-11