Если вы компилируете регулярное выражение внутри функции, и эта функция вызывается несколько раз, Python перекомпилирует регулярное выражение каждый раз, или Python кэширует скомпилированное регулярное выражение (при условии, что регулярное выражение не изменяется)?
Например:
def contains_text_of_interest(line):
r = re.compile(r"foo\dbar\d")
return r.match(line)
def parse_file(fname):
for line in open(fname):
if contains_text_of_interest(line):
# Do something interesting