Py学习  »  Python

什么是Python Buffin?

ark0n • 4 年前 • 725 次点击  

类有一个可定义的函数 __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 图书馆。

思想?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49466
 
725 次点击  
文章 [ 1 ]  |  最新文章 4 年前