safe_eval 在 python odoo 中的用途

Purpose of safe_eval in python odoo

safe_eval 在 Python odoo 中的用途?和 safe_eval 的使用。我检查了几个自定义模块,它们具有安全的评估功能。

safe_eval:

  • 包含方法的模块旨在提供更多受限的替代方法来评估简单的 and/or 不受信任的代码。

  • 此模块中的方法通常用作 eval() 的替代方法来解析 OpenERP 域字符串、条件和表达式,主要基于本地 condition/math 内置函数。

用法:

safe_eval(expression[, globals[, locals[, mode[, nocopy]]]]) -> result

系统限制Python表达式计算

计算一个字符串,该字符串包含的表达式主要是 使用 Python 常量、算术表达式和 直接在上下文中提供的对象。

这可以用于例如评估 来自不受信任来源的 OpenERP 域表达式。

  • 抛出类型错误:如果提供的表达式是代码对象
  • 抛出语法错误:如果提供的表达式无效Python
  • 抛出 NameError:如果提供的表达式访问禁止的名称
  • 抛出 ValueError:如果提供的表达式使用了禁止的字节码