码迷,mamicode.com
首页 > 其他好文 > 详细

类的组合

时间:2019-09-05 13:18:56      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:pen   class   sch   linux   eve   color   period   elf   inpu   

类的组合

学校与课程没有共同点,课程与老师没有共同点,但是学校与课程有关联,课程与老师有关联;学校、课程、老师是三个完全不同的类;课程是属于学校的,老师是教课程的,此时我们就用到类的组合来关联,学校-课程,课程-老师;

class School:
    """
    学校类
    """
    def __init__(self,name,address):
        self.name = name
        self.address = address
class Course:
    """
    课程类
    """
    def __init__(self,name,price,period,school):
        self.name = name
        self.price = price
        self.period = period
        self.school = school
class Teacher:
    """
    老师类
    """
    def __init__(self,name,gender,age,course):
        self.name = name
        self.gender = gender
        self.age = age
        self.course = course
#学校实例化
x1 = School("oldboy","北京校区")
x2 = School("oldboy","天津校区")
x3 = School("oldboy","南京校区")
#课程实例化
k1 = Course("python",19880,"6个月",x1) #课程与学校关联
k2 = Course("linux",17880,"4个月",x2)
k3 = Course("go",20000,"8个月",x3)
#教师实例化
j1 = Teacher("alex","male",34,k2) #教师与课程关联
j2 = Teacher("武sir","male",30,k1)
j3 = Teacher("林海峰","male",35,k3)
print(k1.__dict__)
print(k1.school.name)
print(j1.__dict__)
print(j1.course.name)
技术图片
class School:
    """
    学校类
    """
    def __init__(self,name,address):
        self.name = name
        self.address = address
class Course:
    """
    课程类
    """
    def __init__(self,name,price,period,school):
        self.name = name
        self.price = price
        self.period = period
        self.school = school
class Teacher:
    """
    老师类
    """
    def __init__(self,name,gender,age,course):
        self.name = name
        self.gender = gender
        self.age = age
        self.course = course
#学校实例化
x1 = School("oldboy","北京校区")
x2 = School("oldboy","天津校区")
x3 = School("oldboy","南京校区")
#课程实例化
k1 = Course("python",19880,"6个月",x1) #课程与学校关联
k2 = Course("linux",17880,"4个月",x2)
k3 = Course("go",20000,"8个月",x3)
#教师实例化
j1 = Teacher("alex","male",34,k2) #教师与课程关联
j2 = Teacher("武sir","male",30,k1)
j3 = Teacher("林海峰","male",35,k3)
print(k1.__dict__)
print(k1.school.name)
print(j1.__dict__)
print(j1.course.name)

msg = """
oldboy 北京校区
oldboy 天津校区
oldboy 南京校区
"""
res = """
python
linux
go
"""
while True:
    print(msg)
    menu = {
        "1":x1,
        "2":x2,
        "3":x3,
    }
    choice = input("选择学校>>>:")
    school_boj = menu[choice]
    name = input("课程名称>>>:")
    price = input("课程价钱>>>:")
    period = input("课程周期>>>:")
    new_course = Course(name,price,period,school_boj)
    print("课程【%s】属于【%s】学校"%(new_course.name,new_course.school.name))
    print(res)
    inner = {
        "1":k1,
        "2":k2,
        "3":k3,

    }
    choice1 = input("选择课程>>>:")
    course_boj = inner[choice1]
    name = input("老师名称>>>:")
    gender = input("老师性别>>>:")
    age = input("老师年龄>>>:")
    new_teacher = Teacher(name,gender,age,course_boj)
    print("老师【%s】教的是【%s】"%(new_teacher.name,new_teacher.course.name))

选课系统
选课系统

 

类的组合

标签:pen   class   sch   linux   eve   color   period   elf   inpu   

原文地址:https://www.cnblogs.com/NumerOne/p/11465081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!