• 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...一起加油吧!(ง •̀_•́)ง
  • 相关阅读:
    团队开发冲刺2.3(2015.5.27)
    团队开发冲刺2.2(2015.5.26)
    团队开发冲刺2.1(2015.5.26)
    团队开发冲刺1.6(2015.5.14)
    团队开发冲刺1.5(2015.5.13)
    团队开发冲刺1.4(2015.5.12)
    团队开发冲刺1.3(2015.5.11)
    团队开发冲刺1.2(2015.5.10)
    团队开发冲刺1.1(2015.5.9)
    找1
  • 原文地址:https://www.cnblogs.com/smallfoot/p/10165355.html
Copyright © 2020-2023  润新知