Если есть сомнения, время это:
from timeit import Timer
print Timer("""re.findall(r"\d+", "fg12f 1414 21af 144")""", "import re").timeit()
print Timer("""findall(r"\d+", "fg12f 1414 21af 144")""", "from re import findall").timeit()
Я получаю следующие результаты, используя как минимум 5 повторений по 10 000 000 звонков:
re.findall(): 123.444600105
findall(): 122.056155205
Кажется, есть небольшое преимущество использования findall()
напрямую, а не re.findall()
.
Однако фактические операторы импорта значительно отличаются по своей скорости. На моем компьютере я получаю следующие результаты:
>>> Timer("import re").timeit()
2.39156508446
>>> Timer("from re import findall").timeit()
4.41387701035
Таким образом, import re
выполняется примерно вдвое быстрее. Предположительно, однако, выполнение импортированного кода является вашим узким местом, а не фактическим импортом.