gak*_*gak 6 python import module
我有一个导入模块的模块,但在某些情况下,导入的模块可能不存在.导入模块后,有一个类继承了导入模块的类.如果我ImportError在模块不存在的情况下捕获异常,我怎样才能阻止Python解析模块的其余部分?如果那是不可能的话,我愿意接受其他解决方案.
这是一个基本的例子(selfaware.py):
try:
from skynet import SkyNet
except ImportError:
class SelfAwareSkyNet():
pass
exit_module_parsing_here()
class SelfAwareSkyNet(SkyNet):
pass
Run Code Online (Sandbox Code Playgroud)
我能想到的唯一方法是:
selfaware.py模块之前,请检查skynet模块是否可用,并简单地传递或创建存根类.如果selfaware.py多次导入,这将导致DRY .在内部selfaware.py使用try块定义类.例如:
try:
from skynet import SkyNet
class SelfAwareSkyNet(SkyNet):
pass
except ImportError:
class SelfAwareSkyNet():
pass
Run Code Online (Sandbox Code Playgroud)try:支持else:子句
try:
from skynet import SkyNet
except ImportError:
class SelfAwareSkyNet():
pass
else:
class SelfAwareSkyNet(SkyNet):
pass
Run Code Online (Sandbox Code Playgroud)
你可以使用:
try:
from skynet import SkyNet
inherit_from = SkyNet
except ImportError:
inherit_from = object
class SelfAwareSkyeNet(inherit_from):
pass
Run Code Online (Sandbox Code Playgroud)
仅当实现没有差异时这才有效。
编辑:评论后的新解决方案。
| 归档时间: |
|
| 查看次数: |
2072 次 |
| 最近记录: |