Как импортировать файл Python в скрипт Python более одного раза

Можно ли импортировать файл python более одного раза в сценарий python, потому что я запускаю цикл обратно к файлу драйвера в функции с помощью команды импорта, но она работает только один раз? Благодарность

редактировать: Разрешил сам спасибо

Можете ли вы привести краткий пример того, что вы пытаетесь сделать и чего ожидаете?

Greg Hewgill 10.11.2008 02:42

Я понял это сейчас, спасибо за ваше время, лол

Chris Jester-Young 10.11.2008 03:28

@ Клинтон: пожалуйста, обновите вопрос, указав ответ, который вы нашли, или напишите ответ, чтобы сделать это для других.

tzot 10.11.2008 03:38
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
3
7 756
4

Ответы 4

Самый простой ответ - поместить код, который вы пытаетесь запустить, внутри такой функции

(внутри вашего модуля, который вы сейчас импортируете):

def main():
    # All the code that currently does work goes in here 
    # rather than just in the module

(Модуль, выполняющий импорт)

import your_module #used to do the work

your_module.main() # now does the work (and you can call it multiple times)
# some other code
your_module.main() # do the work again

Оператор импорта - по определению - импортирует только один раз.

Вы можете, если хотите, попробовать использовать execfile() (или eval()) для выполнения отдельного файла более одного раза.

Скорее всего, вам не следует использовать импорт для того, что вы пытаетесь сделать.

Без дополнительной информации я могу только догадываться, но вам следует переместить код в импортируемом модуле с верхнего уровня в функцию, выполнить импорт один раз, а затем просто вызвать функцию из цикла.

Хотя ответ Тома Лея - правильный подход, является позволяет импортировать модуль более одного раза, используя встроенную перезагрузку.

module.py:
print "imported!"

>>> import module
imported!
>>> reload(module)
imported!
<module 'module' from 'module.pyc'>

Обратите внимание, что reload возвращает модуль, позволяя при необходимости повторно привязать его.

Вероятно, заменил бы reload (module) на module = reload (module), просто для ясности.

Ali Afshar 10.11.2008 14:36

Также см. pyunit.sourceforge.net/notes/reloading.html. Это не так просто, как кажется.

S.Lott 10.11.2008 18:34

Али: Я подумал об этом, но повторная привязка не важна для перезагрузки, поскольку это влияет на исходную привязку. Я надеялся указать, что вернул модуль, будет достаточно.

Matthew Trevor 10.11.2008 20:23

Другие вопросы по теме