Python斷言assert處理

2021-10-01 10:14:17 字數 1619 閱讀 7020

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...