一、组合

组合:组合指的是,在一个类中以另外一个类的对象(也就是实例)作为数据属性,称为类的组合

   也就是说:一个类的属性是另一个类的对象,就是组合

例子:

  圆环是由两个圆组成的,圆环的面积就是外圆的面积减去内圆的面积。圆环的周长就是内圆的周长加上外圆的周长,这个时候,我们首先设计一个圆形类,计算一个圆的面积和圆的周长。然后在‘圆环类’组合圆形的实例作为自己的属性来用(这样的目的就是为了不用在写面积和周长的方法了,直接组合圆类的面积和方法去求解。减少了代码的重用)

 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())
求圆环的面积和周长

相关文章: