我写了一大段严重依赖继承和组合的代码。现在我遇到了一个问题,我的层次结构类需要共享变量才能在彼此之间工作,但这会导致复合类也被共享,这意味着这些类的单独实例将在我不想要的地方共享值他们到。我显然不擅长用文字来解释这一点,所以我写了一些代码。
class First(object):
def __init__(self):
self.subvar1 = 0
self.subvar2 = 10
class Second(object):
variable3 = First()
class Third(Second):
def __init__(self):
self.variable4 = self.variable3.subvar2
Firstinstance = Third()
Secondinstance = Third()
Firstinstance.variable3.subvar1 = 50
Secondinstance.variable3.subvar2 = 0
print Firstinstance.variable3.subvar2 #<-prints 0 but i want 10
print Secondinstance.variable3.subvar1 #<-prints 50 but i want 0
除了转储层次系统并编写一个庞大的类,我可以防止复合类共享其有价值的类,还有其他方法可以解决这个问题吗?