我有兩個類(Parent1和Parent2),實現一些方法。然後我有兩個類(Child1和Child2)應該從它們相應的Parent繼承並實現一些功能。問題是Child1和Child2具有完全相同的邏輯,所以我希望有人能指出我的解決方案的可重用性的方向。我正在研究條件繼承,但不確定,因爲它在我來自的語言中並不是真正的東西。Python相同的代碼,但不同的繼承
簡單的例子只是爲了得到一個想法:
# In file1
class Parent1():
def main_method(self):
# Parent 1 implementation
self.arr = [1, 2, 3]
# In file2
class Parent2():
def main_method(self):
# Parent 2 implementation
self.arr = [2, 4, 6]
# In file3
class Child1(Parent1):
def main_method(self):
Parent1.main_method(self)
# Child logic for main_method
print self.arr
# In file4
class Child2(Parent2):
def main_method(self):
Parent2.main_method(self)
# Child logic for main_method
print self.arr
就像mixin解決方案的外觀一樣。然後,我可以創建從Parent1繼承的Child1並創建從Parent2繼承的Child2。然後,我只是混合到child1和child2我需要在兩個地方重用的方法? – kjonsson
如果你的意思是'class Child1(MethodMixin,Parent1):pass'和'class Child2(MethodMixin,Parent2):pass',那麼是的。 –
有兩個問題。我在哪裏調用超級方法來__init__父母?如果他們的孩子實施一些差異,我可以跳過傳遞和實施這些方法嗎? – kjonsson