通常,当我使用异常处理(如NameError)时,它工作正常。但是在下面的代码中,它没有这样做。为什么?
代码:
class Foo(object):
def __init__(self):
print("Instance initiated.")
def isMember(instance):
try:
return isinstance(instance, Foo)
except NameError:
print("No such member exists.")
a = Foo()
isMember(b)
提供以下输出-
Instance initiated.
NameError: name 'b' is not defined
正确的输出应为-
Instance initiated.
No such member exists.
它在到达函数之前被终止。当解释器读取
b
时,它会出现异常。 如果在调用函数时使用try-catch,您可以清楚地知道相关问题 更多 >
编程相关推荐