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

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

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)) 

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

  • Python: понимание переменных класса и экземпляра
  • Заменить новые строки в строке Unicode
  • Ошибка Python "импорт: невозможно открыть X-сервер"
  • Понимание потоков демона Python
  • Как разбить длинный оператор с помощью python
  • лучший способ инвертировать случай строки
  • Python: как подавить вывод os.system
  • Python: обрезать файл до 100 строк или меньше
  • Итерация по списку словарей
  • Объект 'unicode' не может быть вызван
  • Как использовать Python getpass.getpass в PyCharm
  •  
    Interesting Posts for Van-Lav

    Модуль argparse не работает в Python

    python конвертировать unicode в строку

    matplotlib создает 2D-массивы из 1D-массивов – есть ли лучший способ?

    Ограничить метод, который нужно вызывать только через другой метод?

    Нужна помощь в разработке оценки пригодности для нейронной сети, основанной на алгоритме NEAT

    Как я могу узнать, был ли только что запущен генератор?

    Изменение конфиденциальности старых сообщений Facebook с помощью Graph API

    Как загрузить определенные файлы с помощью python-libtorrent

    Декодер Python для обеспечения правильности kwargs

    Преобразование txt-файла с разделителями-табуляторами в файл csv с использованием Python

    Не удается распечатать json из python

    Получить уникальные элементы из списка списков?

    Прозрачный PNG в PIL оказывается не прозрачным

    Хорошая совместная фильтрация / сопоставление / библиотека рекомендаций для Python / Django?

    Как определить уникальное свойство для модели в Google App Engine?

    Python - лучший язык программирования в мире.