assert斷言語句用來宣告某個條件是真的,其作用是測試乙個條件(condition)是否成立,如果不成立,則丟擲異。
一般來說在做單元測試的時候用的比較多,在生產環境**執行的情況下,不建議使用斷言,會讓程式abort掉。
保護性的程式設計 正常情況下,並不是防範當前**發生錯誤,而防範由於以後的**變更發生錯誤。
執行時序邏輯的檢查 這種情況一般都是很嚴重的,防止髒資料或者異常資料進入業務系統,主動進行中斷處理
單元測試** 開發或測試人員編寫單元測試**的時候,也會使用斷言
test.py檔案
def compare(a, b):
assert a>b, 'error: b is bigger'
print('compare: %d %d' %(a, b))
compare(1, 3)
輸出:
traceback (most recent call last):
file "test8.py", line 5, in compare(1, 3)
file "test8.py", line 2, in compare
assert a>b, 'error: b is bigger'
assertionerror: error: b is bigger
當然,我們也可以通過-o引數來忽略斷言,執行python3 -o test.py
輸出:
compare: 1 3
python中的unittest框架用來進行單元測試非常方便
import unittest
class widgettestcase(unittest.testcase):
def test_upper(self):
self.assertequal('foo'.upper(), 'foo')
unittest.main()
unittest中一些常用斷言方法如下:
assertequal(a, b) a == b
assertnotequal(a, b) a != b
asserttrue(x) bool(x) is true
assertfalse(x) bool(x) is false
assertis(a, b) a is b 3.1
assertisnot(a, b) a is not b 3.1
assertisnone(x) x is none 3.1
assertisnotnone(x) x is not none 3.1
assertin(a, b) a in b 3.1
assertnotin(a, b) a not in b 3.1
assertisinstance(a, b) isinstance(a, b) 3.2
assertnotisinstance(a, b) not isinstance(a, b) 3.2
斷言在軟體系統中有非常重要的作用,寫的好可以讓你的系統更穩定,也可以讓你有更多面對物件的時間,而不是在除錯**。 Python 斷言assert的使用
1 assert語句用來宣告某個條件是真的。2 如果你非常確信某個你使用的列表中至少有乙個元素,而你想要檢驗這一點,並且在它非真的時候引發乙個錯誤,那麼assert語句是應用在這種情形下的理想語句。3 當assert語句失敗的時候,會引發一assertionerror。測試程式 mylist ite...
Python學習記錄 assert(斷言)
python中assert 斷言 用於判斷乙個表示式,在表示式條件為 false 時觸發異常。assert可以在條件不滿足程式執行的情況下直接返回錯誤,而不必等待程式執行後出現崩潰的情況。例如我們的 只能在 linux 系統下執行,可以先判斷當前系統是否符合條件 語法如下 assert expres...
Python的assert(斷言)函式
python assert 斷言 用於判斷乙個表示式,在表示式條件為 false 的時候觸發異常。斷言可以在條件不滿足程式執行的情況下直接返回錯誤,而不必等待程式執行後出現崩潰的情況,例如我們的 只能在 linux 系統下執行,可以先判斷當前系統是否符合條件。語法格式如下 assert expres...