如您所知,如果我们只是这样做:

>>> a > 0
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    a > 0
NameError: name 'a' is not defined

有没有办法捕获异常/错误并从中提取值“a”。
我需要这个,因为我是eval编写了一些动态创建的表达式,并想检索未在其中定义的名称。

希望我能说清楚。
谢谢!
曼努埃尔

最佳答案

>>> import re
>>> try:
...     a>0
... except (NameError,),e:
...     print re.findall("name '(\w+)' is not defined",str(e))[0]
a

如果您不想使用正则表达式,则可以执行以下操作
>>> str(e).split("'")[1]
'a'

关于python - 从Python中的NameError获取未定义的名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2270795/

10-11 07:41