类有一个可定义的函数
__exit__
它允许实现上下文管理器。
它接受所需的参数:
def __exit__(self, exc_type, exc_val, exc_tb):
但我找不到关于这些论点是什么及其类型的明确定义。
以下是我对它们是什么以及为什么的最佳猜测,但我不完全确定:
def __exit__(self, exc_type: Exception, exc_val: TracebackException, exc_tb: TracebackType):
exc_类型
Python定义了
TracebackException
接受
exc_type
在中的构造函数中上下文使用的参数
issubclass
具有
SyntaxError
,由此推断
exc_类型
确实是某种
Exception
,其中
语法错误
继承自。
执行值
而且,在那方面
回溯异常
类是
exc_value
符合我们的论点
exc_val
它似乎有各种属性,比如
__cause__
,
__context__
,以及在
TracebackType
本身。这使我认为参数本身就是
回溯异常
.
不含结核病
Python定义了
walk_tb
使用的函数
exc_tb
作为参数(从
docs.python.org
),并且此对象似乎具有
tb_frame
,
tb_lineno
,和
tb_next
可以追溯到
回溯型
班级
typeshed
图书馆。
思想?