繼承: 強調類與類之間的關係 組合: 強調對象和對象之間的關係 清楚python支持多繼承,從而涉及到一些MRO的點,這裡不做贅述,在實際工作過程中,我們經常會使用繼承來實現代碼復用,如果僅僅是為了復用,還是比較推薦使用組合方式,因為繼承方式,使得類與類之間的耦合性變得異常緊密,這多少違背了迪米特法 ...
繼承:
強調類與類之間的關係
組合:
強調對象和對象之間的關係
清楚python支持多繼承,從而涉及到一些MRO的點,這裡不做贅述,在實際工作過程中,我們經常會使用繼承來實現代碼復用,如果僅僅是為了復用,還是比較推薦使用組合方式,因為繼承方式,使得類與類之間的耦合性變得異常緊密,這多少違背了迪米特法則
1 """ 2 OOP中三大特性之一:繼承 3 如果單純為了代碼復用更多的可以考慮 4 組合,繼承類與類之間耦合度高 5 某種程度上,委托也可以是繼承的一種替代方案 6 """ 7 8 9 class A: 10 def __init__(self, name): 11 self.name = name 12 13 def run(self): 14 return "只有永不遏制的奮鬥" 15 16 17 class B: 18 def __init__(self, age): 19 self.age = age 20 21 def say(self): 22 return "才能使青春之花" 23 24 25 class Valley: 26 def __init__(self, name: str = None, age: int = None): 27 # 類實例對象作為屬性 28 self.a = A(name=name) 29 self.b = B(age=age) 30 31 def test(self): 32 print(self.a.run()) 33 print(self.b.say()) 34 35 36 if __name__ == '__main__': 37 Valley().test()
output:
只有永不遏制的奮鬥
才能使青春之花
只有永不遏止的奮鬥,才能使青春之花,即便是凋謝,也是壯麗地凋謝