python学习日记(面向对象——组合)
组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合
圆环是由两个圆组成的,圆环的面积是外面圆的面积减去内部圆的面积。圆环的周长是内部圆的周长加上外部圆的周长。
这个时候,我们就首先实现一个圆形类,计算一个圆的周长和面积。然后在"环形类"中组合圆形的实例作为自己的属性来用
from math import pi class Circle(): def __init__(self,r): self.radius = r def area(self): return self.radius*2*pi def perimeter(self): return self.radius**2*pi class Ring(): def __init__(self,outside_r,inside_r): self.outside = Circle(outside_r) self.inside = Circle(inside_r) def area(self): return self.outside.area() - self.inside.area() def perimeter(self): return self.outside.perimeter() - self.inside.perimeter() ring = Ring(5,4) a = ring.area() print(a) p = ring.perimeter() print(p)
创建一个老师类
老师有生日
生日也可以是一个类
组合
class Birthday(): def __init__(self,year,month,day): self.year = year self.month = month self.day = day class Course(): def __init__(self,name,period,price): self.name = name self.period = period self.price = price class Teacher(): def __init__(self,name,age,sex,birthday): self.name = name self.age = age self.sex = sex self.birthday = birthday self.course = Course('java','2 days',100) b = Birthday(2018,1,1) teacher_wang = Teacher('miss_wang',20,'female',b) print(teacher_wang.course.name) print(teacher_wang.birthday.year) print(teacher_wang.birthday.day)
当类之间有显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好
作者:Gruffalo
---------------------------------------------
天行健,君子以自强不息
地势坤,君子以厚德载物
内容仅为自己做日常记录,备忘笔记等
真小白,努力学习ing...一起加油吧!(ง •̀_•́)ง