比方說,我有一些Python代碼串獲得價值exec`叫
code = """
a = 42
a
"""
和我exec
的代碼串:
result = exec(code)
然後result
總是會None
。是否有任何方法來獲得最後一個表達式的值?在這種情況下,這將是5
,因爲a
是最後一個表達式。
編輯:這是我問的功能的另一個例子。比方說,我們有Python代碼(存儲在變量code
)
a = 100
sqrt(a)
那我怎麼才能在這樣的方式,讓我結果10
執行代碼 - 也就是說,sqrt(a)
?
編輯編輯:另一個例子:我想exec
代碼
function_a()
function_b()
function_c()
有什麼辦法,我可以定義某種magic_exec
功能,使
magic_exec(code)
會爲我提供價值function_c()
?
這裏很有可能你有一個[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 – TigerhawkT3
我不這麼認爲。我的問題是我希望能夠「看到」任意Python代碼的執行結果。什麼'exec'給我('None')沒有用於這個目的。我想要一個有用的價值。 – feralin
執行任意Python代碼甚至不一定會產生結果。例如,'exec('pass')'。你是出於好奇,還是在爲一個實際的程序制定算法? – TigerhawkT3