簡體   English   中英

使用地圖中的eval()執行python代碼行

[英]Executing a python line of code using eval() from a map

假設我有一行代碼是字符串:

a="print 'x + y = ', x + y"

現在我想用eval()執行它

所以如果我已經給出了x&y值,我知道可以寫:

eval (compile (a,"test.py", "single"))

它會很棒。

但我想給他們一個字典的價值。 換句話說,如果我有一個詞典:

b={'x':4,'y':3}

我想要進入x和y的值來自b。

我該怎么做呢?

你檢查了eval()文檔嗎? 您可以使用更多參數來實現此目的。 例如:

>>> b = {'x':4,'y':3}
>>> eval("x + y", b)
7

對於語句,您應該使用exec

在Python 2.x中:

exec "print 'x + y = ', x + y" in {'x':4,'y':3}

在Python 3.x中:

exec("print('x + y = ', x + y)", {'x':4,'y':3})

(當然, print不是Python 3中的聲明,因此在這種情況下不需要)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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