Python中assert断言

assert断言语句用来声明某个条件是真的,其作用是测试一个条件(condition)是否成立,如果不成立,则抛出异。

一般来说在做单元测试的时候用的比较多,在生产环境代码运行的情况下,不建议使用断言,会让程序abort掉。

什么时候使用断言

  • 保护性的编程 正常情况下,并不是防范当前代码发生错误,而防范由于以后的代码变更发生错误。
  • 运行时序逻辑的检查 这种情况一般都是很严重的,防止脏数据或者异常数据进入业务系统,主动进行中断处理
  • 单元测试代码 开发或测试人员编写单元测试代码的时候,也会使用断言

Python中断言使用

编辑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 <module>

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

assertIsNot(a, b)   a is not3.1

assertIsNone(x) x is None   3.1

assertIsNotNone(x)  x is not None   3.1

assertIn(a, b)  a in3.1

assertNotIn(a, b)   a not in3.1

assertIsInstance(a, b)  isinstance(a, b)    3.2

assertNotIsInstance(a, b)   not isinstance(a, b)    3.2

小结

断言在软件系统中有非常重要的作用,写的好可以让你的系统更稳定,也可以让你有更多面对对象的时间,而不是在调试代码。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Pythonassert断言用于在代码检查某个条件是否为True,如果不是,则会抛出AssertionError异常。它的语法如下: assert expression [, arguments] 其,expression是需要检查的条件,如果为False,则会抛出异常。arguments是可的,用于在异常信息提供更多的信息。 assert断言通常用于在开发和调试过程,帮助程序员快速发现代码的错误。它可以用于检查函数的输入和输出是否符合预期,以及检查程序的逻辑是否正确。但是,在生产环境assert断言应该被禁用,因为它可能会导致程序崩溃。 ### 回答2: assert断言Python的一种工具,用来确认特定的一个条件是True,如果不是True则会抛出AssertionError异常,使得程序停止运行。 在Pythonassert断言常常用于进行程序的调试和检测。通常的用法是在代码插入一些assert代码,用于检查程序的正确性。如果assert语句检查到错误,那么程序就会崩溃,并打印出错误信息。 assert语句的语法结构如下: assert expression [, arguments] 其expression为需要检查的条件表达式,如果为False则会抛出AssertionError异常。arguments是可选的,用于指定异常的描述信息。 assert语句一般放在函数或方法,用于对输入参数或函数处理结果的检查,以确保程序的正确性。例如: def divide(a, b): assert b != 0, "除数不能为0" return a / b print(divide(10, 0)) 上面的代码assert语句用于确保函数的除数不为0,如果除数为0则会抛出异常。通过使用assert语句,我们可以在程序开发和调试,快速定位并解决问题,提高代码的可靠性和健壮性。 在Pythonassert语句的使用应遵循以下几点原则: 1. 不应该使用assert语句来检查用户的输入,因为可能会导致安全漏洞。 2. 应该将assert语句用于检查预期的程序状态,例如函数参数和返回结果等。 3. 应该遵循“少用assert,多用单元测试”的原则,通过编写单元测试用例来确保程序的正确性和健壮性。 4. 应该使用合适的异常处理机制来处理assert语句可能抛出的异常,以防止程序崩溃。 ### 回答3: Pythonassert是一种用于判断程序逻辑是否正确的语言结构。当assert后面跟的表达式为假(即False或0)时,程序就会停止运行,同时抛出一个AssertionError的异常,从而提醒程序员在代码存在问题。 使用assert可以方便地对程序进行调试和检查错误,特别是在开发过程assert可以帮助开发人员尽早地发现问题并加以修正。例如,在对输入的参数进行校验时,assert可以用于判断参数是否符合预期的格式和范围,若不符合则收到错误信息。 assert的语法结构为:assert expression, message,其expression为要进行判断的表达式,message为断言失败时要输出的信息。message是可选的,如果省略,则输出默认的信息“AssertionError”。 assert可以与try和except语句联合使用,来处理断言失败时引起的异常。在try块使用assert,若断言失败,则会抛出AssertionError异常,进入except块进行处理。这样可以保证程序不会因为一个小问题而崩溃,也可以在程序加入更多的容错性。 总而言之,assertPython一种非常有用的调试工具,它可以帮助开发人员快速定位程序的缺陷,从而更加高效地进行开发和维护。在编写代码时,我们可以充分利用assert这个工具,但也需要注意精度和安全性,避免过多使用assert导致程序出现问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值