在Python中,"除了异常为e"和"除了异常,e"之间有什么区别?

Nat*_*han 93 python exception

在python中,有两种方法可以捕获异常

except Exception, e:

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

似乎'e'是未来使用的那个.在什么版本的python做了这个改变?知道为什么吗?

Ign*_*ams 48

此PEP引入了一些更改,旨在帮助消除Python语法中的歧义,简化异常类,简化异常的垃圾收集并减少Python 3.0中的语言大小.

PEP 3110:"捕获Python 3000中的异常"

  • 新的语法被反向移植到2.6,但旧的语法没有删除. (3认同)

nmi*_*els 15

简短的回答为什么:Exception, e并且Exception, TypeError很难区分.答案很长:伊格纳西奥说的话.


Fáb*_*niz 14

使用"as"的第一个提议是:http://mail.python.org/pipermail/python-dev/2006-March/062449.html.他们认为阅读代码会更直观

  • 这是一个很好的发现.从历史角度来看它总是很好看! (2认同)