通常、このパターンは、作業中のすべてのPythonプロジェクトで少なくとも1回は見られます。たとえば、Djangoプロジェクトでは、これは多くの場合、基本設定ファイルの最後に追加されます。
try:
from .local_settings import *
except ImportError:
pass
また:
try:
import simplejson as json
except ImportError:
import json
これはいつも私を少しでも悩ませてきました。モジュールが正常にインポートされた後、ImportError
それ自体がトリガーされるとどうなりますか?たとえば、最初の例では、local_settings
モジュールは存在しますが、local_settings
存在しないモジュールをインポートしようとします。
これはオプションのモジュールをインポートする最も安全な方法ですか、この機能を実現するためのより良い方法はありますか?それはコンテキスト/使用法に依存しますか(そうであれば、このアプローチをいつ使用するかを決定するガイドラインは何ですか?)