Вы можете посоветовать функцию python-mode.el для получения желаемого эффекта (по крайней мере, если я правильно понимаю ваш запрос).Поместите в ваш файл инициализации Emacs следующее:
(defun py-reload-file (buf)
"Reload buffer's file in Python interpreter."
(let ((file (buffer-file-name buf)))
(if file
(progn
;; Maybe save some buffers
(save-some-buffers (not py-ask-about-save) nil)
(let ((reload-cmd
(if (string-match "\\.py$" file)
(let ((f (file-name-sans-extension
(file-name-nondirectory file))))
(format "if globals().has_key('%s'):\n reload(%s)\nelse:\n import %s\n"
f f f))
(format "execfile(r'%s')\n" file))))
(save-excursion
(set-buffer (get-buffer-create
(generate-new-buffer-name " *Python Command*")))
(insert reload-cmd)
(py-execute-base (point-min) (point-max))))))))
(defadvice py-execute-region
(around reload-in-shell activate)
"After execution, reload in Python interpreter."
(save-window-excursion
(let ((buf (current-buffer)))
ad-do-it
(py-reload-file buf))))
Теперь, когда вы находитесь в программе на python, вы можете выбрать область кода, нажмите C- | , чтобы оценитьрегион и программа Python будут перезагружены (или импортированы, если не были загружены ранее) в буфер интерпретатора Python.Модуль ENTIRE будет перезагружен, а не только выбранный регион, и вам будет предложено сохранить файл python, если он еще не был сохранен.Обратите внимание, что предостережения, которые были упомянуты в ответах на ваш предыдущий вопрос , по-прежнему применяются (например, - если у вас уже есть экземпляры классов, созданные из импортированного модуля, были созданы экземпляры других объектов и т. Д., Они не будут перезагружены).Может произойти общая поломка, так что будьте бдительны!).