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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构