Python中eval的替代方法


问题内容

Pythoneval相当慢。我需要使用逻辑运算符(例如“
True或False”)评估简单的布尔表达式。我正在处理数千行数据,eval这在性能方面是一个巨大的瓶颈。这真的很慢。还有其他方法吗?

我尝试创建一个dict可能的表达式组合及其期望的输出,但这确实很丑陋!

我现在有以下代码:

eval('%s %s %s' % (True, operator, False))

问题答案:
import operator
ops = { 'or': operator.or_, 'and': operator.and_ }
print ops[op](True, False)