欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python 面向对象-----组合

程序员文章站 2024-03-15 21:03:51
...

组合:对象的属性值 是另一个类的对象

两个实例:

#第一种
#创建一个圆的类,有面积方法,和周长方法
from math import pi
class Circle():
    def __init__(self,r):#半径
        self.r=r
    def area(self):#计算面积
        return self.r**2 *pi
    def perimeter(self):#计算周长
        return 2*pi*self.r

#创建一个圆环类,有
class Ring():
    def __init__(self,out_r,in_r):#外半径和内半径
        self.out_r=Circle(out_r)#外半径的值是Circle类的对象
        self.in_r=Circle(in_r)#内半径的值是Circle类的对象
    def area(self):#计算面积=大圆半径-小圆半径
        return self.out_r.area()-self.in_r.area()
    def perimeter(self):#计算周长=内周长+外周长
        return self.out_r.perimeter()+self.in_r.perimeter()
ring=Ring(20,10)
print(ring.area())
print(ring.perimeter())


#第二种

#创建Teacher类
class Teacher():
    def __init__(self,name,age):#属性为name,age
        self.age=age
        self.name=name
    def speech(self):#演讲方法
        print(self.name)
#创建一个School类
class School():
    def __init__(self,name,area):#校名,校面积
        self.name=name
        self.area=area


#实例化
t1=Teacher('张三',21)
t2=Teacher('李四',22)


schooll1=School('一中',10000)
school12=School('二中',12000)

#外部添加属性,并且属性值为school的对象
t1.school=schooll1
t2.school=school12

#查看老师对应的学校
t_for_school=t1.school.name
t_for_school2=t2.school.name

print(t_for_school)
print(t_for_school2)

相关标签: 组合