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