Вопрос

Я работаю изнутри оболочки iPython и часто нужно перезагрузить файлы сценариев, которые содержат мои функции-подстройки.

Внутри мой main.py у меня есть:

def myreload (): execfile ("main.py") execfile ("inshfile.py")

Вызов MyReLoad () работает нормально, если у меня уже пробежал в том же сеансе iPython, которые напрямую команды execfile.

Однако по какой-то причине, если сеанс свежая, и я только что назывался execfile («Main.py»), то MyReload () на самом деле не делает функции изнутри Indoorfile.py. Это не бросает никакой ошибки.

Есть идеи?

Это было полезно?

Решение

Функции создают новый объем. execfile() Запускает скрипт в текущем объеме. Что вы делаете, не будете работать.

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

Если вы стремитесь узнать фактическое правильное использование айфон (т.е. в интерактивном режиме), то вы должны использовать магические команды, такие как:

%run

а также

%edit

Проверьте справку для тех функций с %run?. Отказ Это обеспечивает явные примеры.

Смотрите также http://ipython.org/ipython-doc/stable/interaction/tutorial.html.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top