Я могу только вообразить, что импорт может быть использован для утечки памяти;Вы могли бы динамически создавать и импортировать модули произвольного имени (скажем, с целью создания системы плагинов);использовать их один раз и прекратить их использование.Если вы сделали это с помощью обычного механизма импорта, то есть с __import__(variable_module_name)
, эти модули будут добавлены к sys.modules
, и даже если они больше не будут использоваться.
Решение хорошо, не делай этого.Если вы действительно создаете систему плагинов, то динамический импорт такого рода, вероятно, подходит, поскольку плагины будут использоваться повторно.Если вам действительно нужно использовать динамически генерируемый одноразовый код;используйте eval
.
Если вам действительно нужно использовать импорт динамически сгенерированного кода (скажем, для автоматического тестирования), то вам, вероятно, нужно покопаться в sys.modules
, чтобы стереть импортированные вами модули. Вот хорошая статья, объясняющая, как сделать что-то подобное.