【学习笔记】31、Python中的断言
Python中的斷言
一 、初識斷言
功能:Python內置的assert語句(斷言)可以用來自動檢測Python程序中的錯誤,讓程序更可靠更易于調試。
含義:斷言語句是一種調試工具,用來測試某個斷言條件,如果斷言條件為真,則程序將繼續正常執行;如果條件為假,則會引發AssertionError異常并顯示相關錯誤信息。
例子:
上面的例子是商店某商品的打折功能,其中的assert語句是為了確保在任何情況下,通過該函數計算的折后價都在0到原價之間。例子中是打8折,返回折扣價24元,那么要是嘗試輸入“折扣”是200%呢?
?這時候程序會停止并觸發一個AssertionError的異常,因為違反了程序中設置的斷言條件。這里還可以得知斷言驗證失敗的具體位置,可以更加輕松的追溯問題所在,極大的加快了調試工作的速度。
為什么不用普通的異常來處理?
斷言是為了告訴開發人員程序中發生了不可恢復的錯誤,對于可以預料的錯誤,用戶可以予以糾正或重試。
斷言用戶程序內部自檢,如聲明一些代碼中不可能出現的條件,如果觸發了某個條件,即意味著程序中存在相應的Bug。
斷言是一種調試輔助功能,并不是用來處理運行時錯誤的機制。
二、斷言的語法
assert expression1 [, expression2]
其中expression1是需要測試的條件,可選的expression2是錯誤消息,如果斷言條件為假,則會顯示expression2的消息。
If __debug__:
????????If not expression1:
????????????????raise AssertionError(expression2)
?
三、注意事項
1、不要使用斷言驗證數據。
有些情況下設置Python解釋器會全局禁用斷言,那么所謂的條件會被忽略,條件下面的語句會被執行,從而造成不可預知的風險。
2、不要使用永遠為真的斷言。
若將一個元組作為斷言語句中的第一個參數傳遞時,斷言條件總為真,因為只要非空元組,那么結果一定是為真的,所以斷言語句毫無意義。
?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的【学习笔记】31、Python中的断言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【学习笔记】30、Python基础综合练
- 下一篇: 【学习笔记】32、字符串格式化