Форум сайта python.su
0
Доброго времени суток!)
Возможно вопрос покажется глупым, но возможно ли отключать ранее импортированные (самописные, т.е. не стандартные) модули?
Дело в том, что мне необходимо было написать множество функций и для простоты я запихал их в отдельные модули, а затем импортировал их по ходу выполнения основного кода. К сожалению сейчас необходимо прикрутить цикл, (а модуль импортируется лишь один раз) по этому и возникла надобность временно отключать их. Возможно ли это?
Офлайн
52
Покажите код. Что значит “отключать модули”?
Может вы имеете в виду какой-нибудь из этих вариантов. А может вам просто достаточно будет поставить флаг isImported. Без кода можно привести с десяток таких “может”.
Офлайн
0
record - записывает файл с некоторыми параметрами, а grafic - соответственно стрит по полученному файлу график, однако думаю это не важно.
def write(): time.sleep(int(rex[3])) import record time.sleep(int(rex[4])) import grafic print u"* файл преобразован" def chc(event): i=1 for i in range(5): write() i+=1
Офлайн
52
Win95, либо выносите модули из функции, либо определяйте флаг isImported.
Если очень грубо:
isImported = False def foo(): global isImported if not isImported: import module isImported = True while len(day) > len(night): foo() isImported = False
Отредактировано fata1ex (Июль 9, 2012 21:01:56)
Офлайн
0
fata1ex, спасибо за советы) но нашел такую замечательную (для меня) вещь как reload() она выгружает модуль, однако в Python 3x её кажется прикрыли) благо на 2.7 пишу)
Офлайн
52
Win95, долго искали-то? Я вам эту замечательную вещь прислал в первом же своём посте. Да и выполнять перезагрузку модуля при каждой итерации цикла, как минимум, некрасиво и неэффективно.
Офлайн
14
А почему бы не импортировать на уровне модуля?
Офлайн