我正在尝试编写一个包装器,将两个类似的库包装在一起,从而为它们提供共同的API。例如:
# file XY.version.py
try:
import X # primary library
__version__ = X.__version__
except ImportError:
import Y # fallback library
__version__ = Y.__y_version__
PyCharm显示警告"'X'在try块中与'except ImportError'一起使用时,也应该在except块中定义"
。有没有简单的方法重构代码以摆脱这个消息?当然,我可以在非常开始或except
块中做X = None
,但这感觉很人为,因为我只需要导入X
以获取版本。理想情况下,我不想保留命名空间中导入的痕迹。当然,理论上我可以在try
块结束时执行del X
,但我从未在任何地方看到过这样做,所以我认为人们不使用它,而且顺便说一句,它不能删除PyCharm中的警告消息。
注意:我知道这类似于 在 'except ImportError' 中检查模块名称,但我认为这不是同一个问题。