仅当系统上有可用包时才创建类

时间:2014-11-10 05:49:28

标签: python

我在Python项目中有依赖于外部包的类。我希望只有在它们的依赖项可用时才能创建这些类。

例如,如果可以导入YamlParser,我怎样才能拥有仅存在的yaml课程?

3 个答案:

答案 0 :(得分:2)

您可以在try - except区块中执行此操作。

但是,如果您想在其他地方访问该类,这可能会使事情变得非常复杂,因为错误处理将变得越来越复杂。

try:
    import yaml
    Class YamlParser():
        pass
except ImportError:
    pass
    #error handling here

如果没有import语句,您还可以看到How to check if a python module exists without importing it的方法。

答案 1 :(得分:1)

使用try和except来处理这种情况:

try:
    import yaml
    ## your code goes here
except ImportError:
    ## here you handle the expcetion

答案 2 :(得分:0)

模块化和可扩展的解决方案是将YamlParser放在自己的源文件中,并简单地将import yaml语句放在开头。如果缺少必需的模块import,那么尝试yaml此代码的任何代码都将失败。