次のコードを機能させる方法があるかどうかのアイデア
class Test(object):
def __init__(self, var):
self.var = var
def changeme(self):
self = Test(3)
t = Test(1)
assert t.var == 1
t.changeme()
assert t.var == 3
より複雑なオブジェクト(djangoモデルなど、インスタンスが参照しているdbエントリをホットスワップするため)に安全に使用できる次のようなものです。
class Test(object):
def __init__(self, var):
self.var = var
def changeme(self):
new_instance = Test(3)
self.__dict__ = new_instance.__dict__
t = Test(1)
assert t.var == 1
t.changeme()
assert t.var == 3