Python 2.6报告md5模块已经过时,应使用hashlib。如果我将import md5
更改为import hashlib
,则可以解决python 2.5和python 2.6的问题,但无法解决python 2.4的问题,因为它没有hashlib模块(导致ImportError,我可以捕获)。
现在,为了修复它,我可以使用try/catch,并定义一个getMd5()函数,以便根据try块的结果定义一个正确的函数。这种解决方案可以吗?
在更一般的情况下,例如:您有两个不同的库,具有相同的目标但不同的接口,并且您想要使用一个库,但是如果找不到第一个库,则回退并使用另一个库,您该如何解决此问题?
except
语句非常危险,因为它会隐藏在模块中发现但在模块源代码中引发异常的错误。 - Kenan Banks