组合也是 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