为什么“except”中未定义的名称不会引发NameError?

2024-10-03 23:22:02 发布

您现在位置:Python中文网/ 问答频道 /正文

今天我很惊讶地看到,以下各项毫无例外地工作(至少在Python2.7.3中):

>>> try:
...     pass
... except ThingThatDoesNotExist:
...     print "bad"
...
>>>

我认为这应该会在REPL中引发一个NameError,类似于下面的方法:

^{pr2}$

有人知道这是怎么回事吗?在


Tags: 方法passreplbadprinttryexceptnameerror
1条回答
网友
1楼 · 发布于 2024-10-03 23:22:02

与此不引发异常的原因相同:

>>> True or ThingThatDoesNotExist

Python会在需要计算名称的时候查找它们。不需要计算的名称不会被查找,查找失败会引发异常。在

相关问题 更多 >