簡體   English   中英

在環境中無法執行python eval時,有什么方法可以捕獲特定的變量名?

[英]Is there any way to catch the specific variable name when failed to executing python eval in enviroment?

def func(param):
    #do something

碼:

    enviroment = {'func':func}
    eval('func(a)', enviroment, enviroment)

我本來想在環境中使用getattr ,但似乎無濟於事

在環境中搜索參數a時發生錯誤,有什么辦法可以捕獲該錯誤? 然后,我可以將a附加到環境中並再次執行。

任何答案將不勝感激,謝謝。

以下代碼,

def func(param):
    print param

enviroment = {'func':func}
try:
    eval('func(a)', enviroment, enviroment)
except NameError as err:
    name = str(err).split("'")[1]
    enviroment[name] = "something"
print enviroment['a']

輸出:

'something'

執行eval語句時,將返回NameError:

NameError: name 'a' is not defined

因此,我們可以捕獲該錯誤並通過提取'a'來對其進行響應。

暫無
暫無

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

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