簡體   English   中英

使用帶有 eval() 的變量名字典

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM