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