我有一个导入模块的模块,但在某些情况下,导入的模块可能不存在。导入模块后,有一个类继承自导入模块的类。如果我要在模块不存在的情况下捕获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