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

问题描述 投票:0回答:1

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

try:
    from foo import bar

    class MyClass:

        def __init__(self):
            ...

except ImportError:
    # Warning

except声明放在这里是否有意义? ImportError可以发生在另一个地方而不是from foo import bar线吗?

python
1个回答
1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.