我想捕获一个NameError,然后访问该名称并使用它来提供更好的消息。如何在不解析错误消息的情况下访问引起错误的名称?

try:
    love_bug = herbie
except NameError as err:
    name = get_name(err)
    print(name, 'unknown.')


换句话说,如何在上述代码中实现get_name()?

最佳答案

您必须从NameError.args[0]中提取名称:

>>> try:
...     print(foo)
... except NameError as e:
...     print(re.search("'(?P<name>.+?)'", e.args[0]).group('name'))
...
foo

关于python - 如何在NameError中访问名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44731553/

10-13 08:37