2013-05-12 33 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