2013-05-12 36 views
0

字符串变量定义clause1 = "((1 & z[0]) != 0)"停止蟒蛇的eval()从取出支架

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

如何保持EVAL括号()和评估一切

+0

您是否试过转义括号,即'\ ['和'\]'? – refi64 2013-05-12 05:34:53

+1

这是什么版本的Python? – 2013-05-12 05:41:31

+0

你的意思是分别用'\('和'\)'代替'('和')'。我想这一点,并得到了错误的 '文件 “”,1号线 \(\(1&Z [0] \)= 0 \!) ^ 语法错误:续行后,意外的字符 – Sharad 2013-05-12 05:43:38

回答

0

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

+0

你说得对。我将'BoolRef:1&v__a!= 0'分配给一个没有eval的变量() 现在我必须弄清楚如何处理它。谢谢!! – Sharad 2013-05-12 18:29:22