hashlib / md5. Kompatibilität mit Python 2.4

8

python 2.6 meldet, dass das Modul md5 veraltet ist und hashlib verwendet werden sollte. Wenn ich import md5 zu import hashlib ändere, werde ich nach python 2.5 und python 2.6 suchen, aber nicht nach python 2.4, das kein hashlib-Modul hat (was zu einem ImportError führt, den ich fangen kann).

Um es zu beheben, könnte ich nun versuchen / fangen und eine getMd5 () - Funktion definieren, so dass eine richtige entsprechend dem Ergebnis des try-Blocks definiert wird. Ist diese Lösung in Ordnung?

Wie würden Sie dieses Problem in einem allgemeineren Fall lösen, wie zum Beispiel: Sie haben zwei verschiedene Bibliotheken mit demselben Ziel, aber unterschiedlicher Schnittstelle, und Sie möchten eine verwenden, aber greifen Sie zurück und verwenden Sie die andere, wenn die erste man wird nicht gefunden.

    
Stefano Borini 14.09.2009, 20:51
quelle

2 Antworten

18

Im Allgemeinen ist das folgende Konstrukt in Ordnung:

%Vor%

In Ihrem speziellen Fall vielleicht:

%Vor%     
Triptych 14.09.2009, 20:54
quelle
2

Wenn die Module die gleiche Schnittstelle haben wie hier, ist die von Ihnen beschriebene Lösung in Ordnung. Sie könnten den Import auch so in ein eigenes Modul isolieren:

%Vor%

Wenn sie unterschiedliche Schnittstellen haben, müssten Sie einen Adapter schreiben, um die Schnittstellen wie angegeben auszurichten.

    
jkp 14.09.2009 20:57
quelle