我有一个python3脚本,它使用简单的assert语句来比较两个变量的值。
assert response['checksum'] == checksum
一个名为bandit的代码分析工具将此标记为不良做法,并且保护较少。https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html
使用断言真的是一种糟糕的做法,而且不太安全吗?
您自己在链接中给出了答案:
发现一些项目使用assert来强制执行接口约束。然而,在编译到优化的字节码(生成*.pyo文件的python-o)时,assert被删除了。
因此,如果一个库依赖于assert
来执行某种验证,而我将其与py2exe
或类似的工具一起使用,则生成的代码很可能会丢失断言和,从而失败或跳过所述验证。这就是为什么您应该只在测试代码等中使用assert
。