Döngüde yeniden derlenen regex (ARCH2073)
Anahtar python.performance.regex-recompiled-in-loop · Önem info · Kategori performance
Sabit bir desenin döngü içinde her adımda derlenmesi gereksizdir. Deseni döngü dışında bir kez re.compile ile derleyip yeniden kullanın.
Hatalı
Bölüm başlığı “Hatalı”import re
def find_codes(lines): out = [] for line in lines: if re.match(r"^[A-Z]{3}\d{4}$", line): out.append(line) return outimport re
CODE_RE = re.compile(r"^[A-Z]{3}\d{4}$")
def find_codes(lines): return [line for line in lines if CODE_RE.match(line)]Düzeltme
Bölüm başlığı “Düzeltme”Sabit deseni döngü dışında modül düzeyinde re.compile ile bir kez derleyin.