【问题标题】:python3 - bad practice to use assert?python3 - 使用断言的坏习惯?
【发布时间】:2018-10-11 17:24:10
【问题描述】:

我有一个 python3 脚本,它使用简单的断言语句来比较两个变量的值。

assert response['checksum'] == checksum

一个名为 bandit 的代码分析工具将此标记为不良做法且保护较少。 https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html

使用 assert 真的是不好的做法并且不太安全吗?

【问题讨论】:

    标签: python python-3.x security


    【解决方案1】:

    您自己在链接中给出了答案:

    发现一些项目使用 assert 来强制接口约束。但是,通过编译为优化的字节码(python -o 生成 *.pyo 文件)删除了断言。

    因此,如果一个库依赖assert 来强制执行某种验证,而我将它与py2exe 或其他类似工具一起使用,那么生成的代码很可能会丢失断言和 失败或跳过所述验证。这就是为什么你应该只在测试代码等中使用assert

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-17
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      相关资源
      最近更新 更多