python面向对象03

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

# 学生类
## 姓名 性别 年龄 学号 班级 手机号

#课程类
## 班级名称  期数  讲师

class Student:
    def __init__(self,name,sex,age,stuid,stucls,phone):
        self.name = name
        self.sex = sex
        self.age = age
        self.stuid = stuid
        self.stucls = stucls
        self.phone = phone

class Clas:
    def __init__(self,Cla_class,begint,teacher):
        self.Cla_class = Cla_class
        self.begint = begint
        self.teacher = teacher
#班级1
clas_1 = Clas('s2','2020-09-20','teacher1')
clas_2 = Clas('s3','2019-10-20','teacher2')

#学生1
stu1 =Student('user01','male',27,'023',clas_1,12345323335)
stu2 =Student('user02','male',27,'025',clas_2,12354323453)

# 查看stu1的班级的开班日期
print(stu1.stucls,clas_1) #<__main__.Clas object at 0x000001476B9C2C18> <__main__.Clas object at 0x000001476B9C2C18>
print(stu1.stucls.begint) #2020-09-20

#创建两个班级 linux50
#创建两个班级 python23
# 查看linux50期所学课程的价格
# 查看python23期所学课程的周期

###############################################################################
"""
练习题:
1.求圆环的面积。大圆和小圆之间的面积  注意:圆心一样
"""
#求圆环的面积

from math import pi
class Circle:
    def __init__(self,r):
        self.r = r
    def area(self):
        return pi * self.r**2
    def perimeter(self):
        return 2 * pi * self.r

#圆环
class Ring:
    def __init__(self,outer_r,inner_r):
        outer_r,inner_r = (outer_r,inner_r) if outer_r > inner_r else (inner_r,outer_r)
        self.out_r = Circle(outer_r)
        self.in_r = Circle(inner_r)
    def area(self):
        return self.out_r.area() - self.in_r.area()
    def perimeter(self):
        return self.out_r.perimeter() - self.in_r.perimeter()

# print(Ring(10,8).area())
# print(Ring(10,8).perimeter())

# print(Ring(8,10).area())
# print(Ring(8,10).perimeter())
##############################################################################
"""理解以下"""

"""
父类的子类方法的选择:
子类的对象如果去调用,永远优先调用自己的。
如果自己有,用自己的;如果自己没有,用父类的
如果自己有还想用父类的,直接在子类的方法中调用父类的方法。父类名.方法名(self)

"""
class Foo:
    def __init__(self):
        self.func()
    def func(self):
        print('in foo')

class Son(Foo):
    def func(self):
        print('in son')
Son()


posted @ 2020-11-09 09:51  精灵中的二丫  阅读(83)  评论(0)    收藏  举报