python基础语法10-断言assert

1.断言概念:
断言是一个调试工具,它的作用是发现异常而不是处理异常。
python的 assert(断言)用于判断表达式,在表达式为false的时候触发异常。
断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况,
例如我们的代码只能在 Linux 系统下运行,可以先判断当前系统是否符合条件。
语法:assert expression  或者 assert expression [, arguments]
等同于:
if not expression:
    raise AssertionError
或者
if not expression:
    raise AssertionError(arguments)
示例:
assert True   #条件为 True 正常执行
assert 1==1   #条件为 True 正常执行
assert 1==2   #条件为 False 触发异常
assert False  #条件为 False 触发异常
import sys
assert ('linux' in sys.platform)
#判断当前是否是linux系统,如果不是直接触发异常,不执行后续还有的程序
class Gender:
    Male   = 1 # 男
    Female = 2 # 女
    @classmethod
    def IsValid(cls, val):
        if val in (cls.Male, cls.Female):
            return True
        return False
class Human:
    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender
        assert Gender.IsValid(gender), "Invalide Gender:{}".format(gender)
        assert age >= 0, "Invalide age:{}".format(age)
2.断言关闭
assert是一个调试工具,在功能开发并测试完毕之后,正式发布之前,应该先把assertion语句全部去掉(或者使其失效)。
python中关闭assert的方法:
方法1:python -O 文件名
方法2:直接注释(或者删除)所有的assert语句。比较直观和暴力。
3.断言使用原则
使用断言:
使用断言捕捉不应该发生的非法情况;
使用断言对函数的参数进行确认;
在编写函数时,要进行反复的考查,并且自问:“我打算做哪些假定?”一旦确定了的假定,就要使用断言对假定进行检查
不使用断言:
不要用于测试用户提供的数据,或者那些需要在所有情况下需要改变检查的地方
不要用于检查你认为在通常使用中可能失败的地方。断言用于非常特别的失败条件。你的用户绝不看到一个AssertionError,如果看到了,那就是个必须修复的缺陷
特别地不要因为断言只是比一个明确的测试加一个触发异常矮小而使用它。断言不是懒惰的代码编写者的捷径。
不要将断言用于公共函数库输入参数的检查,因为你不能控制调用者,并且不能保证它不破坏函数的合约。
不要将断言用于你期望修改的任何错误。换句话,你没有任何理由在产品代码捕获一个AssertionError异常。
不要太多使用断言,它们使代码变得晦涩难懂。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春风抚微霞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值