python 类组合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 类组合相关的知识,希望对你有一定的参考价值。

       在使用一款云产品的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.

当然,类组合也有它的适用场景:当类和类之间有显著的不同,并且(较小的类)是较大的类所需要的组件时,使用类组合是更好的选择,否则,继承是更合适的方法

以上是关于python 类组合的主要内容,如果未能解决你的问题,请参考以下文章

Python-面向对象(组合封装与多态)

python3 类 组合

python类继承和组合

Python_类的组合

python之路--day21--组合与封装

JavaScript 代码片段