Вопрос по python – Как перезагрузить модуль Python, который был импортирован в другой файл?

2

Я пытаюсь узнать, как Python перезагружает модули, но столкнулся с препятствиями. Допустим, у меня есть:

dir1\file1.py:

from dir2.file2 import ClassOne
myObject = ClassOne()

dir1\dir2\file2.py:

class ClassOne():
   def reload_module():
       reload(file2)

Вызов reload не может найти модуль "file2".

У меня вопрос, как мне сделать это правильно, без необходимости хранить все в одном файле?

Смежный вопрос: когда перезагрузка сработает, myObject будет использовать новый код?

благодарю вас

Контрольный вопрос:stackoverflow.com/questions/1080669/… user129975
S.Lott прав, вы должны немного больше объяснить, каков ваш реальный случай, потому что пример кода выглядит как то, что вы обычно не хотели бы делать. balpha♦
По сути, я хочу, чтобы объекты запускали код в окнах редактирования, которые пользователь может изменять во время работы системы. Объекты будут иметь регулярный «step ()» вызываемая функция, где пользователь должен изменить код. Это изменит поведение объектов при запуске программы. user129975
Есть небольшая польза для перезагрузки. Что ты пытаешься сделать? S.Lott

Ваш Ответ

1   ответ
3
   def reload_module():
       import file2
       reload(file2)

Тем не менее, это будетnot само по себе измените тип объектов, которые вы создали из классов, которые содержались в предыдущей версии файла2. Издание Python Cookbook 2nd содержит рецепт о том, как совершать такие подвиги, и оно слишком длинное и сложное как в коде, так и в обсуждении, чтобы его можно было воспроизвести здесь (я полагаю, что вы можете прочитать его в поиске книг в Google, или в случае неудачи с оригиналом «сырая» версия [до всех усовершенствований, которые мы сделали с ней], по крайней мере, все еще должна быть на сайте кулинарной книги activestate).

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded user129975
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы