在使用一款云产品的python sdk过程中,发现了python类之间调用的另一种少见方法:类组合,那么类组合是用来干吗的呢?
我们知道,在python中,类之间的相互调用,我们习惯性的采用继承的方法,但是 除了继承方法,我们还可以采用类组合的方式来调用另一个类 官方的说法:让不同的类混合并加入到其他类中,来增强功能和代码重用性。你可以在一个大点的类中创建你自己的类的实例,实现一些其他属性和方法来增强原来的类对象。
举个例子:
>>> class Name(object): def __init__(self, nm): self.name = nm >>> class Phone(object): def __init__(self, ph): self.phone = ph >>> class NewAddrBookEntry(object): def __init__(self, nm, ph): self.name = Name(nm) self.phone = Phone(ph) print ‘Created instance for:‘, self.name print ‘Created instance for:‘, self.name.name >>> foo = NewAddrBookEntry(‘Paul‘, 123456) Created instance for: <__main__.Name object at 0x02B75FD0> Created instance for: Paul
类NewAddrBookEntry 的初始化方法分别调用了类Name和类Phone.
当然,类组合也有它的适用场景:当类和类之间有显著的不同,并且(较小的类)是较大的类所需要的组件时,使用类组合是更好的选择,否则,继承是更合适的方法
时间: 2024-10-01 23:52:36