易百教程

63、Python中的组合是什么?

组合也是 Python 中的一种继承。 它打算从基类继承,但略有不同,即使用基类的实例变量作为派生类的成员。

见下图:
组合

为了演示组合,需要实例化类中的其他对象,然后使用这些实例。

class PC: # Base class
    processor = "Xeon" # Common attribute
    def __init__(self, processor, ram):
        self.processor = processor
        self.ram = ram

    def set_processor(self, new_processor):
        processor = new_processor

    def get_PC(self):
        return "%s cpu & %s ram" % (self.processor, self.ram)

class Tablet():
    make = "Intel"\n    def __init__(self, processor, ram, make):
        self.PC = PC(processor, ram) # Composition
        self.make = make

    def get_Tablet(self):
        return "Tablet with %s CPU & %s ram by %s" % (self.PC.processor, self.PC.ram, self.make)

if __name__ == "__main__":
    tab = Tablet("i7", "16 GB", "Intel")
    print(tab.get_Tablet())

运行结果如下:

Tablet with i7 CPU & 16 GB ram by Intel