继承:
强调类与类之间的关系
组合:
强调对象和对象之间的关系
清楚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:
只有永不遏制的奋斗
才能使青春之花