【发布时间】:2010-01-26 06:13:28
【问题描述】:
知道是否有办法使以下代码工作
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 模型,用于热交换实例所引用的数据库条目)是类似于以下安全的东西
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
【问题讨论】:
-
为什么?您显然想要一个新实例,为什么不直接创建一个新实例并将其扔掉呢?请解释一下用例。
标签: python class instance hotswap