一、组合
组合:组合指的是,在一个类中以另外一个类的对象(也就是实例)作为数据属性,称为类的组合
也就是说:一个类的属性是另一个类的对象,就是组合
例子:
圆环是由两个圆组成的,圆环的面积就是外圆的面积减去内圆的面积。圆环的周长就是内圆的周长加上外圆的周长,这个时候,我们首先设计一个圆形类,计算一个圆的面积和圆的周长。然后在‘圆环类’组合圆形的实例作为自己的属性来用(这样的目的就是为了不用在写面积和周长的方法了,直接组合圆类的面积和方法去求解。减少了代码的重用)
1 from math import pi 2 class Circle: 3 def __init__(self,r): 4 self.r=r 5 def perimater(self): 6 return 2*pi*self.r 7 def area(self): 8 return pi*self.r*self.r 9 # print(Circle.perimater('r',2)) 10 # print(Circle.area('r',3)) 11 12 13 class Circle_ring: #定义一个圆环类 14 def __init__(self,outside_r,inside_r): 15 outside_bijiao = max(outside_r,inside_r) 16 intside_bijiao = min(outside_r, inside_r) 17 self.outsize_circle = Circle(outside_bijiao) #实例化一个大圆形 作为self.outside_circle属性的值 18 self.intsize_circle = Circle(intside_bijiao) #实例化一个小圆环 19 def area(self): 20 return self.outsize_circle.area()-self.intsize_circle.area() 21 def perimater(self): 22 return self.intsize_circle.perimater()+self.outsize_circle.perimater() 23 24 25 r1 = Circle_ring(10,20) #实例化 26 print(r1.area()) 27 print(r1.perimater())