Class BigClassA:
def __init__(self):
self.a = 3
def foo(self):
self.b = self.foo1()
self.c = self.foo2()
self.d = self.foo3()
def foo1(self):
# do some work using other methods not listed here
def foo2(self):
# do some work using other methods not listed here
def foo3(self):
# do some work using other methods not listed here
Class BigClassB:
def __init__(self):
self.b = # need value of b from BigClassA
self.c = # need value of c from BigClassA
self.d = # need value of d from BigClassA
def foo(self):
self.f = self.bar()
def bar(self):
# do some work using other methods not listed here and the value of self.b, self.c, and self.d
Class BigClassC:
def __init__(self):
self.b = # need value of b from BigClassA
self.f = # need value of f from BigClassB
def foo(self):
self.g = self.baz()
def baz(self):
# do some work using other methods not listed here and the value of self.b and self.g
問題: 基本上我有3個類有很多的方法,它們有點依賴,你可以從代碼中看到。如何將BigClassA中的實例變量self.b,self.c,self.d的值分享給BigClassB?Python:如何在不同類的實例之間共享數據?
nb:這3個類不能彼此繼承,因爲它沒有意義。
我想到的只是將所有方法合併爲一個超級大類。但我不認爲這是一個正確的方式來做到這一點。
'類BigClassB(BigClassA):'和'類BigClassC(BigClassA,BigClassB)'。使用繼承 – ForceBru 2015-03-03 11:50:00
您可以嘗試使用構圖。那就是當你在B類的一個實例中實例化一個類A的對象時。這樣你就可以擁有連接,而不用說其中的一個是專門化的。 [閱讀](http://learnpythonthehardway.org/book/ex44.html)。除此之外,您可以發送類A的對象並將您需要的屬性分配給類B中的新屬性。儘管這可能會破壞數據一致性。 – ljetibo 2015-03-03 11:50:07
你想分享每個班級的實例還是全球的數據? – 2015-03-03 11:50:36