Просто переместите import
из цикла.Вы правы в том, что это заставляет Python выполнять дополнительную работу на каждой итерации.
Оператор Python import
делает две вещи:
- Проверьте, загружен ли уже указанный модуль, иесли нет, загрузите его.
- Привязать (назначить) одно или несколько имен.
Таким образом, каждая итерация цикла Python проверяет, загружен ли уже модуль (примерно эквивалентно проверке 'Levenshtein._levenshtein' in sys.modules
), затем задает имя distance
.
При условии ничего другого в цикле устанавливает имя distance
на что-либо еще, вы можете безопасно вывести импорт из цикла и сохранитьсами эти чеки тоже.Если такой код существует, то сделайте рефакторинг, чтобы он не использовал то же имя, и перенесите импорт из цикла.