我有一個字符串表達式,我需要做eval。該表達式可能具有來自給定詞典的鍵名,並且這些鍵的值可能是或可能不是字符串。對於我的評估能夠評估這些名稱,我使用該詞典中出現的鍵名創建變量,並如下例所示爲詞典中的值賦予它。但從我讀的here,應該不使用vars()。這讓我擔心我已經實施的穩定性和風險。任何想法或建議如何以更好的方式暗示這一點?使用變量是不是很好()
def test(e1,d1):
for k,v in d1.iteritems():
if k in e1:
vars()[k]=v
return eval(e1)
test('x+y', {'x':1, 'y':2})
謝謝!!
更大的問題:使用'eval()'是個壞主意。你真的想做什麼? – SingleNegationElimination