今天继续学习笨方法学python。
Composition类的组合,就是可以将其他的类中定义的函数,直接导入到自己写的新的类中,避免重复写。组合函数从另一个角度实现了类的继承功能。

composition
红色框中,直接用魔法方法__init__(self)在初始化的时候,对Other类实例化,赋给self.other,然后就直接调用想要从Other类中复制的函数即可。
问题是什么时候用继承?什么时候用组合?Inheritance VS Composition
“继承与组合”的问题归结为试图解决可重用代码的问题。不想在到处都有重复的代码,因为这样既不干净也不高效。继承和组合都是解决这个问题。继承通过创建一个机制,可以继承基类中的隐含特性,解决了这个问题。组合通过导入模块,实现在其他类中调用函数的能力来解决这个问题。

Inheritance VS Composition
第一,避免多重继承,因为太复杂了。一旦出错,需要花时间去搞清楚继承关系,找出所有出错的地方。
第二,使用组合将代码打包成模块,将这些模块用于许多不同的不相关的位置和情况。
第三,只有当有明确相关的可重用的代码块有共同的概念,使用继承。
不要墨守成规,要因时而变,因势而变。