提出错误的'e'有什么作用?

Her*_*ari 0 python exception-handling exception python-2.7 try-except

我为初学者做了一个关于我的python的讲座,其中某个主题没有得到很好的解释.那这是e做什么的呢?

def x(a, b):
    try:
        return a / b

    except ZeroDivisionError, e:
        return 0
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 8

已捕获的异常将分配给名称e.您可以选择任何有效的Python标识符:

except ZeroDivisionError, caught_exception:
Run Code Online (Sandbox Code Playgroud)

这允许您使用捕获的异常; 也许是为了打印错误消息,或者为了其他目的使用异常的属性.请参阅Python教程的" 处理异常"一章.

except <Exception>, <name>:语法已弃用,取而代之的:

except ZeroDivisionError as e:
Run Code Online (Sandbox Code Playgroud)

它更具可读性,避免了与语法混淆以捕获多种异常类型:

except (ZeroDivisionError, ValueError):
Run Code Online (Sandbox Code Playgroud)

由于您发布的功能不使用e,因此可以安全地将其删除:

def x(a, b):
    try:
        return a / b
    except ZeroDivisionError:
        return 0
Run Code Online (Sandbox Code Playgroud)