gpt4 book ai didi

python - __exit__ 吞下 TypeError

转载 作者:行者123 更新时间:2023-11-30 22:23:54 24 4
gpt4 key购买 nike

我在提醒自己“关键字”时偶然发现了这篇文章 http://effbot.org/zone/python-with-statement.htm 。我只是有一个小问题,可能是显而易见的问题。文章指出,这“吞噬了任何 TypeError”

 def __exit__(self, type, value, traceback):
return isinstance(value, TypeError)

我不太明白这是怎么回事?快速解释将不胜感激?

最佳答案

如果从 __exit__ 子句返回 True,它将阻止任何错误发生。例如:

class Foo():
def __enter__(self):
print("enter")
def __exit__(self, type, value, tb):
print("exit with", repr(value))
return True

with Foo():
print("inside")
raise ValueError()

将输出

enter
inside
exit with ValueError()

但不会引发任何异常,因为 __exit__() 返回 True

在示例中,如果引发的错误是 TypeError,则语句:

return isinstance(value, TypeError)

将返回True并且TypeError将被“吞噬”。

关于python - __exit__ 吞下 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47935881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com