2017-12-21 8 views
0

私はいくつかのPythonコードに次のパターンを見つけました:クラスの前にtry文を置き、その後にexcept文を書くのは意味がありますか?

try: 
    from foo import bar 

    class MyClass: 

     def __init__(self): 
      ... 

except ImportError: 
    # Warning 

それはここexcept文を置くことは理にかなっていますか? ImportErrorfrom foo import bar行以外の場所で表示されますか?

+4

これはクラスでは発生しませんが、インポートが機能している場合のみクラスを作成する必要がある場合は、クラス作成をスキップしてエラーを処理する便利な方法です(クラスのより単純な変形を作成するなど) –

答えて

1

あなたは(めったに間違いでない)本当に、明示的になりたいと思った場合、あなたはtry-except-else構造

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

が、その後使用することができます - あなたが指摘したように - ImportErrorはほぼ確実にインポートのみで発生しますがステートメントでは、簡略化のためにクラス定義をtryブロックに含めてもよく、このパターンはかなり頻繁に見られます。

関連する問題