2015-09-15 8 views
6

Ich habe immer angenommen, dass, wenn ich Leute das sre Modul erwähnen sah, es ein Tippfehler war und sie wirklich re meinten.Warum existieren sowohl die Module sre als auch re in Python?

Heute habe ich versehentlich import sre in den Interpreter eingegeben und war überrascht, dass es funktionierte. Ich beschloss, ein wenig mehr in das zu graben, was das sre Modul über help(sre) war und ... alles über das, was es tut, ist genau dasselbe wie re.

Warum existieren beide Module? Was kam zuerst? Warum wurde der zweite erstellt? Wird eines veraltet und/oder entfernt (ist es bereits in Python 3 verschwunden? Ich habe keinen Python 3-Interpreter auf diesem Computer, um damit zu überprüfen.)

Antwort

4

Ja, es ist veraltet. Wenn Sie help(sre) haben, müssen Sie diese Linie gesehen haben:

DESCRIPTION 
    This file is only retained for backwards compatibility. 
    It will be removed in the future. sre was moved to re in version 2.5. 

So ist es für den Code verwendet, die < für Python ausgelegt ist 2.5, aber es jetzt durch re ersetzt wird.

Des Weiteren wurde entfernt:

# Python 3 
>>> import sre 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named 'sre' 
+1

ich nicht. 'help' hat die ganze Saite einfach rausgeschmissen, so dass ich nur die letzten ~ 50 Zeilen davon gesehen habe. Das beantwortet also einige meiner Fragen, aber ich bin immer noch neugierig - warum hat 'sre überhaupt existiert? Ich hatte den Eindruck, dass 'Regex' aus Python 1 in Python 2 durch' re' ersetzt wurde ... wo passt 'sre' dazu? – ArtOfWarfare

+0

'sre' war der Anfang von Regex. Es klingt einfach so, als hätten sie es mit einem neuen Modul aktualisiert, das wahrscheinlich viel besser funktioniert. Es ist wie Python 2 und Python 3 – TerryA

Verwandte Themen