Python小结_代码测试

断言

断言是作为一种调试工具被发明出来的,用来检查那些“代码写对了就肯定成立”的条件,可用if + raise语句实现同样的效果。

与异常的应用场景差异:检查先验条件使用断言,检查后验条件使用异常。

def read_file(file_path):

    assert is_instance(file_path, str) # 函数执行前,对file_path的类型进行推断。

    if not check_exist(file_path):

        raise NotFoundError()
        # file_path所指定的文件存在。

    if not has_privilege(file_path):

        raise PermissionError()
        # 当前用户有权限读取

作者认为,raise的两个条件不属于bug,是代码逻辑的一部分,上层代码捕获异常后可能会执行其他逻辑,因此我们不能接受这部分代码在生产环境中被忽略。

我倒觉得没啥区别,关键区别在于生产环境是否依赖并进行不同的逻辑判断,还是只是在编写代码时进行调试。

附,参考资料:

1、你真的会正确使用断言吗?,https://zhuanlan.zhihu.com/p/36549710

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容