在类之前有一个try语句而在之后有一个except语句是否有意义?

时间:2017-12-21 10:26:09

标签: python

我在一些Python代码中发现了以下模式:

try:
    from foo import bar

    class MyClass:

        def __init__(self):
            ...

except ImportError:
    # Warning

except语句放在此处是否有意义? ImportError可以发生在from foo import bar行以外的其他地方吗?

1 个答案:

答案 0 :(得分:1)

如果你想要真正明确(这很少是一个错误),你可以使用try-except-else构造

try:
    from foo import bar
except ImportError:
    # Warning
else:
    class MyClass:
        def __init__(self):
            ...

但是,因为 - 正如你指出的那样 - ImportError几乎肯定只会被import语句引发,你也可以在try中包含类定义 - 为了简洁起见,为了这个模式,人们确实经常看到这种模式。