Python __退出\吞咽类型错误
我在提醒自己关于“关键字”的事情,我偶然发现了这篇文章。我只是有一个很小的,很明显的问题。这篇文章说这“包含任何打字错误”Python __退出\吞咽类型错误,python,python-3.x,error-handling,Python,Python 3.x,Error Handling,我在提醒自己关于“关键字”的事情,我偶然发现了这篇文章。我只是有一个很小的,很明显的问题。这篇文章说这“包含任何打字错误” 我不太明白是怎么回事?如果您从\uuuu exit\uuuu子句返回True,它将阻止任何错误的发生。例如: class Foo(): def __enter__(self): print("enter") def __exit__(self, type, value, tb): print("exit with", repr
我不太明白是怎么回事?如果您从
\uuuu exit\uuuu
子句返回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()
但不会引发任何问题,因为\uuu exit\uu()
返回了True
在本例中,如果引发的错误是TypeError
,则语句:
return isinstance(value, TypeError)
将返回True
,并且TypeError
将被“吞没”。。
return isinstance(value, TypeError)