如何在模块完成解析之前退出它?

2024-04-28 23:17:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个导入模块的模块,但在某些情况下,被导入的模块可能不存在。导入模块后,有一个类继承了导入模块的类。如果我要在模块不存在的情况下捕获ImportError异常,那么如何才能阻止Python解析模块的其余部分?如果不可能的话,我愿意接受其他解决方案。在

这是一个基本的例子(自我意识.py)公司名称:

try:
    from skynet import SkyNet
except ImportError:
    class SelfAwareSkyNet():
        pass
    exit_module_parsing_here()

class SelfAwareSkyNet(SkyNet):
    pass

我唯一能想到的办法是:

  • 在导入selfaware.py模块之前,请检查skynet模块是否可用,只需传递或创建一个存根类。如果多次导入selfaware.py,这将导致干燥。在
  • selfaware.py中,使用try块定义类。e、 g.:

    ^{2美元

Tags: 模块py名称情况公司pass解决方案class
2条回答

try:支持else:子句

try:
    from skynet import SkyNet

except ImportError:
    class SelfAwareSkyNet():
        pass

else:
    class SelfAwareSkyNet(SkyNet):
        pass

您可以使用:

try:
   from skynet import SkyNet
   inherit_from = SkyNet
except ImportError:
   inherit_from = object

class SelfAwareSkyeNet(inherit_from):
    pass

只有在实现没有差异的情况下,这才有效。在

编辑:注释后新建解决方案。在

相关问题 更多 >