阻止python eval()删除括号

时间:2013-05-12 05:31:30

标签: python eval

定义字符串变量clause1 = "((1 & z[0]) != 0)"

它的eval()给出了BoolRef: 1 & v__a != 0 而我实际上需要BoolRef: ((1 & v__a) != 0)

如何将括号保留在eval()中并评估其他所有内容

1 个答案:

答案 0 :(得分:0)

我认为你让eval()混淆了z[0]的确切类型,我猜,这里的魔力是什么。我相信如果您尝试直接运行((1 & z[0]) != 0),而没有eval(),则会得到相同的答案BoolRef: 1 & v__a != 0。我对么?如果是这样,那么你需要查看类BoolRef来修复它如何实现__repr__(),在最后的字符串中包含一些额外的括号。