1. 程式人生 > >python assert使用說明

python assert使用說明

none 失敗 del list tls otn most 內部 使用

python assert斷言的作用

python assert斷言是聲明其布爾值必須為真的判定,如果發生異常就說明表達示為假。

assert斷言語句的語法格式

判斷a與1.b是否一致,msg類似備註,可以為空
self.assertEqual(a,b,msg=msg)

判斷a與b是否不一致
self.assertNotEqual(a,b,msg=msg)

判斷a是否為True
self.assertTrue(a,msg=none)

判斷b是否為false
self.assertFalse(b,msg=none)

該判斷過程有點復雜,判斷判斷過程如下
self.assertAlmostEqual(a,b,places=none,msg=none,delta=none)


註:places與delta不能同時存在,否則出異常,
若a==b,則直接輸入正確,不判斷下面的過程
若delta有數,places為空,判斷a與b的差的絕對值是否<=delta,滿足則正確,否則錯誤
若delta為空,places有數,判斷b與a的差的絕對值,取小數places位,等於0則正確,否則錯誤
若delta為空,places為空,默認賦值places=7

例如:
assertAlmostEqual(2,2) 正確,
assertAlmostEqual(5,2,delta=4) 正確
assertAlmostEqual(5,2,delta=2) 錯誤
assertAlmostEqual(2,2.005,places=1) 正確


assertAlmostEqual(2,2.05,places=3) 錯誤

self.assertNotAlmostEqual(a,b,places=none,msg=none,delta=none) 同上,但判斷相反
註,delta與places不能同時存在,否則拋出異常

例如:
assertNotAlmostEqual(2,2) 錯誤
assertNotAlmostEqual(a,b,delta=c) #a不等於b 同時 a-b>c 則正確,否則錯誤
assertNotAlmostEqual(a,b,places=2)

判斷a in b是否成立,正確則True,否則為False
self.assertIn(a,b)


例如:
assertIn(“2” in “23”) 成功
assertIn(“1” in “23”) 失敗

判斷a in b是否成立,不成立則True 否則 False
self.assertNotIn(a,b)
例如:
assertIn(“2” in “23”) 失敗
assertIn(“1” in “23”) 成功

判斷a 與b的對象是否相同,成立則True,否則False(註,判斷是否同一對象 id(a) 若id相同,則為同一對象)
self.assertIs(a,b)
例如:
a,b=1,1.0
assertls(a,b) 失敗
a,b=1,1
assertls(a,b) 成功

判斷a 與b的對象是否相同,不成立True,否則False
self.assertIsNot(a,b)

判斷字典a和字典b是否相等,a,b為字典
self.assertDictEqual(a,b)

比較兩字符串是否一致,同sorted(a)==sorted(b)(註:sorted排序,方法內部為,將a,b分別list,生成各自列表,在sorted排序在比對)
self.assertItemsEqual(a,b)

比較a文本與b文本是否一致,即便多了個換行,也會區分
self.assertMultiLineEqual(a,b)

判斷a<b 成立則通過,否則失敗
self.assertLess(a,b)

判斷a<=b 成立則通過,否則失敗
self.assertLessEqual

判斷a>b 成立則通過,否則失敗
self.assertGreater

判斷a>=b 成立則通過,否則失敗
self.assertGreaterEqual

判斷obj=None 成立則通過,否則失敗
self.assertIsNone(obj=””)

判斷obj=None 成立則失敗,否則通過
self.assertIsNotNone

判斷a的數據類型是否為b,isinstance(a,b) 成立則通過,否則失敗
self.assertIsInstance(a,b)

判斷同上相反
self.assertNotIsInstance



python assert使用說明