[英]Using a dictionary of variable names with eval()
我知道 eval() 對於這樣的事情非常有用:
x = 3
y = 2
myformula = "x + y"
print eval(myformula)
>>> 5
但是如果我不想對變量名和值進行硬編碼而是使用字典怎么辦?
mydict = {'x':3, 'y':2, 'z':5}
myformula = "x + y + z"
print eval(myformula)
>>> 10
or,
mydict = {'a':100, 'b':10, 'c':1}
myformula = "(a * b) - c"
print eval(myformula)
>>> 999
我查找了如何將變量分配給變量,但我無法將這些其他答案應用於我的問題。 我仍然想為 myformula 字符串保留該符號。 任何幫助,將不勝感激。
謝謝。
保羅
伊利諾伊州芝加哥
這是eval
的第二個和第三個參數的用途(閱讀文檔):
>>> d = {'x':3, 'y':2, 'z':5}
>>> eval("x + y + z", d)
10
請注意, eval
任意用戶輸入是不安全的(想想rm -Rf /
)。 避開它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.