我在python中创建一个包,它有一些可选的依赖项。核心功能不需要这些依赖项,但缺少这些依赖项将禁用某些类的使用(它是一个提供存储html字段的orm.lxml用于存储和检索值)。
显然,如果无法导入依赖项,我可能就不会创建该类。但这可能让用户感到困惑,因为他得到的“模块x没有属性y”,这不是真正的问题。
如果有人想要导入或使用一个类,那么有没有办法发出有意义的错误消息(我还在考虑创建一个__getattribute__
引发错误的类)。有没有推荐的方法呢?一些有趣的方式是在一些高质量的包装中完成的?
答案 0 :(得分:1)
不是真的。但是如果可选的导入失败,那么你可以提供“stub”类来解释实例化时的错误。