Oder warum sollte man das nutzen?
Geht doch auch wenn man z.B. gleich denn 'pattern' bei 're.split()' eingibt anstatt den 'pattern' erst mit 're.compile()' umzuwandeln und dann zu benutzen
lg
Bringt re.compile() Geschwindigkeitsvorteil?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ist aber etwas unpraktisch wenn du das dann nicht nutzt - das Problem hatte Bazaar mal, dass die Startup-Zeit groß war, obwohl man die ganzen vorkompilieren regulären Ausdrücke nicht immer alle gebraucht hat. Okay, bei einigen wenigen regulären Ausdrücken fällt das natürlich noch nicht so ins Gewicht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Stimmt nicht -- re.compile() hat einen Cache, weswegen re.match() mit gleichem Pattern nicht neu kompiliert.rayo hat geschrieben:Ohne compile muss re einfach bei jedem aufruf dein Pattern kompilieren und sonst nur 1mal.
Natürlich hat das Selbstkompilieren trotzdem Vorteile: Der Cache nimmt nur eine begrenzte Anzahl Einträge auf, man spart sich den Aufruf von re._compile() durch re.match(), und kann das Pattern mehrmals im Code verwenden.
Der Cache ist aber nur ein Implemetierungsdetail, sollte man sich nicht drauf verlassen.