我在一些Python代码中发现了以下模式:
try:
from foo import bar
class MyClass:
def __init__(self):
...
except ImportError:
# Warning
将except
声明放在这里是否有意义? ImportError
可以发生在另一个地方而不是from foo import bar
线吗?
如果你想要真正明确(这很少是一个错误),你可以使用try-except-else
结构
try:
from foo import bar
except ImportError:
# Warning
else:
class MyClass:
def __init__(self):
...
但是,因为 - 正如你所指出的那样 - ImportError
几乎肯定只会被import语句引发,你可能也会在try
-block中包含类定义,为了简洁起见,人们确实经常看到这种模式。