您好,登錄后才能下訂單哦!
斷言(assertions)的使用方式類似于if語句,只是在不滿足條件時,會直接拋出異常。類似于下面的if語句(偽代碼)
if not condition: #如果不滿足條件,會直接拋出異常,程序會中斷
crash program
那么究竟為什么需要這樣的代碼呢?主要原因為需要檢測程序在某個地方是否滿足條件,如果不滿足條件,應該及時通知開發人員,而不是將這些bug隱藏起來,知道關鍵的時候在崩潰。
其實在TDD中經常使用斷言,TDD會在程序發現異常時執行斷言,并拋出異常。
在Python語言中,斷言需要使用assert語句,在assert關鍵字的后面指定斷言的條件表達式。如果條件表達式的值是False,那么就會拋出異常。而且斷言后面的語句都不會執行,相當于程序的一個斷點。
>>> value = 20
>>> assert value < 10 or value > 30 #條件不滿足,會拋出異常
>> assert value < 30 #條件滿足,會正常執行后面的語句
可以看到,value變量的值是20,而assert后面的條件是“value < 10 or value > 30”,很明顯,條件不滿足,所以在斷言出會拋出異常。而后面的斷言,條件是“value < 30”,這個條件是滿足的,所以在斷言后面的語句都會正常執行。
當斷言條件不滿足時拋出異常,在默認情況下,只顯示了拋出異常的位置,并沒有顯示拋出異常的原因,所以為了異常信息更明確,可以為assert語句指定異常描述。
>>> value = 20
>>> assert value < 10 or value > 30,'value值必須在10~20' #為斷言指定異常描述信息
[例 3.6] 本例演示了斷言的用法。
name = "Bill" #定義變量name
assert name == "Bill" #斷言條件表達式的值是True,繼續執行下面的語句
age = 20 #定義變量age
#斷言條件表達式的值是False,拋出異常,后面的代碼不會被執行
assert 0 < age < 10, '年齡必須小于10歲'
print("hello world") #這行代碼不會被執行
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。