Python异常处理中'as'关键字原理及变量e的本质问询
问题解析:Python中
except ... as e里的e是什么? 代码示例
try: a = 10 b = 0 c = a/b except ZeroDivisionError as e: print(e)
运行输出:
division by zero
核心解答
as e的作用是把当前触发的ZeroDivisionError类的实例对象赋值给变量e,它不是某个字符串的别名,就是这个异常实例的引用。- 执行
print(e)时,本质是调用了这个异常实例的__str__()魔法方法。Python内置异常类(包括ZeroDivisionError及其父类链:ArithmeticError→Exception→BaseException)都实现了这个方法,会返回预设的错误描述字符串。 - 当Python触发
ZeroDivisionError时,会自动实例化该类并传入预设的错误信息(即"division by zero"),捕获后通过e访问这个实例,调用print()就会输出该预设信息。
内容的提问来源于stack exchange,提问作者vibhav950
相关产品推荐
相关产品推荐

