モジュール内のクラスからインスタンス化されたオブジェクトがあるとします。次に、そのモジュールをリロードします。次にやりたいことは、リロードがそのクラスに影響するようにすることです。
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() メソッドでオブジェクト内のデータを操作したいので、静的モジュール関数では実行できません...