Насколько безопасно импортировать модуль несколько раз?

Мне это интересно некоторое время: гарантировано ли безопасное импортирование модуля несколько раз? Конечно, если модуль выполняет операционные системы, такие как запись в файлы или что-то еще, то, вероятно, нет, но для большинства простых модулей безопасно ли просто выполнять импорт волей-неволей? Существует ли соглашение, определяющее глобальное состояние модуля?

2 Solutions collect form web for “Насколько безопасно импортировать модуль несколько раз?”

Да, вы можете import module столько раз, сколько хотите в одной программе Python, независимо от того, какой модуль он есть. Каждый последующий import после первого доступа к кэшированному модулю вместо повторной оценки.

Импорт модуля os под десять тысяч разных имен не вызывает никаких проблем.

 for i in range(10000): exec("import os as foo%i" % i) for i in range(10000): exec("foo%i.getcwd()" % i) 

При импорте в разных классах:

 for i in range(10000): exec("""class FooClass%i: import os as foo%i print foo%i.getcwd()""" % (i,i,i)) 

Оба работают без проблем. Конечно, это не гарантия, но, по крайней мере, кажется, вы не сталкиваетесь с непосредственными практическими проблемами.

  • Мусор в файле после усечения (0) в Python
  • Сохраните последний файл и удалите все остальные
  • os.environ не работает
  • Когда использование точки с запятой в Python считается «хорошим» или «приемлемым»?
  • Как скрыть окно консоли Chromedriver?
  • Как интегрировать любой питон Python с API статуса фиксации GitHub?
  • В Python, как я могу открыть файл и прочитать его в одной строке и все еще иметь возможность закрыть файл после этого?
  • OrderedDict: тоже упорядоченные значения?
  • Python - лучший язык программирования в мире.