モジュールをインポートするモジュールがありますが、インポートされるモジュールが存在しない場合があります。モジュールがインポートされた後、インポートされたモジュールのクラスを継承するクラスがあります。ImportErrorモジュールが存在しない場合に例外をキャッチする場合、Python が残りのモジュールを解析するのを止めるにはどうすればよいですか? それが不可能な場合は、他の解決策を受け入れます。
以下は基本的な例です (selfaware.py):
try:
from skynet import SkyNet
except ImportError:
class SelfAwareSkyNet():
pass
exit_module_parsing_here()
class SelfAwareSkyNet(SkyNet):
pass
これを行うために私が考えることができる唯一の方法は次のとおりです。
- モジュールをインポートする前に
selfaware.py、モジュールが利用可能かどうかを確認skynetし、単純にスタブ クラスを渡すか作成します。selfaware.py複数回インポートすると DRY が発生します。 内部には、ブロック内で
selfaware.py定義されたクラスがあります。try例えば:try: from skynet import SkyNet class SelfAwareSkyNet(SkyNet): pass except ImportError: class SelfAwareSkyNet(): pass