首页 > 解决方案 > 异常或其他块级范围中的变量范围

问题描述

采取以下例外:

>>> try:
...     1/0
... except Exception as e:
...     print (e)
...
division by zero
>>> e
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'e' is not defined

范围是否except仅在异常块内?如果是这种情况,语句之外是否还有其他语句/表达式with(尽管它需要一个__enter__方法,因此不能仅仅用作任何东西的限制范围)允许这样做?


如果您需要在异常之后保留范围,您可以在块内进行分配。例如:

try:
    1/0
except Exception as _:
    e=_

>>> e
# ZeroDivisionError('division by zero')

标签: python-3.x

解决方案


推荐阅读