多组合少继承
继承:
强调类与类之间的关系
组合:
强调对象和对象之间的关系
清楚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:
只有永不遏制的奋斗
才能使青春之花
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!