2024-09-28 20:19:38 发布
网友
如你所知,如果我们这么做:
>>> a > 0 Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> a > 0 NameError: name 'a' is not defined
是否有方法捕捉异常/错误并从中提取值“a”。 我需要这个,因为我将eval导出一些动态创建的表达式,并希望检索其中未定义的名称。
eval
希望我说清楚了。 谢谢! 曼纽尔
>>> import exceptions >>> try: ... a > 0 ... except exceptions.NameError, e: ... print e ... name 'a' is not defined >>>
可以分析“”的异常字符串以提取值。
Python 2.x不需要import exceptions
import exceptions
>>> try: ... a > 0 ... except NameError as e: ... print e.message.split("'")[1] ... a >>>
您将“a”的引用指定为:
>>> try: ... a > 0 ... except NameError as e: ... locals()[e.message.split("'")[1]] = 0 ... >>> a 0
>>> import re >>> try: ... a>0 ... except (NameError,),e: ... print re.findall("name '(\w+)' is not defined",str(e))[0] a
如果你不想使用regex,你可以这样做
>>> str(e).split("'")[1] 'a'
可以分析“”的异常字符串以提取值。
Python 2.x不需要
import exceptions
您将“a”的引用指定为:
如果你不想使用regex,你可以这样做
相关问题 更多 >
编程相关推荐