Скажем, у вас есть объект, который был создан из класса внутри модуля. Теперь вы перезагружаете этот модуль. Следующее, что вы хотели бы сделать, это заставить эту перезагрузку повлиять на этот класс.
mymodule.py
---
class ClassChange():
def run(self):
print 'one'
myexperiment.py
---
import mymodule
from mymodule import ClassChange # why is this necessary?
myObject = ClassChange()
myObject.run()
>>> one
### later, i changed this file, so that it says print 'two'
reload(mymodule)
# trick to change myObject needed here
myObject.run()
>>> two
Вам нужно создать новый объект ClassChange, скопировать myObject в это и удалить старый объект myObject? Или есть более простой способ?
Изменить: метод run() выглядит как метод статического класса, но это было только ради краткости. Я бы хотел, чтобы метод run() работал с данными внутри объекта, поэтому статическая функция модуля не выполнялась бы...