类的组合

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

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 = """
1 oldboy 北京校区
2 oldboy 天津校区
3 oldboy 南京校区
"""
res = """
1 python
2 linux
3 go
"""
while True:
print(msg)
menu = {
"":x1,
"":x2,
"":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 = {
"":k1,
"":k2,
"":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))

选课系统

python之类的组合的更多相关文章

  1. 7 python 类的组合

    1.组合与重用性 软件重用的重要方式除了继承之外还有另外一种方式,即:组合 组合指的是,在一个类中以另外一个类的对象作为 1.一个类的属性可以是一个类对象,通常情况下在一个类里面很少定义一个对象就是它 ...

  2. python编写排列组合,密码生产功能

    python编写排列组合 python在编写排列组合是会用到  itertools 模块 排列 import itertools mylist = list(itertools.permutation ...

  3. python 参数的组合

    现在我们知道python定义函数的参数类型有:必选参数 默认参数 可变参数 关键字参数 但是在我们日常中我们是可以组合使用这些参数的:但是使用的时候,参数定义是有顺序的 定义的顺序必须是:必选参数,默 ...

  4. python面向对象编程之组合

    前面讲了面向类与对象的继承,知道了继承是一种什么"是"什么的关系. 然而类与类之间还有另一种关系,这就是组合 先来看两个例子: 先定义两个类,一个老师类,老师类有名字,年龄,出生的 ...

  5. 【Python】排列组合itertools & 集合set

    ■itertools 利用python的itertools可以轻松地进行排列组合运算 itertools的方法基本上都返回迭代器 比如 •itertools.combinations('abcd',2 ...

  6. python(Django之组合搜索、JSONP、XSS过滤 )

    一.组合搜索 二.jsonp 三.xss过滤 一.组合搜索 首先,我们在做一个门户网站的时候,前端肯定是要进行搜索的,但是如果搜索的类型比较多的话,怎么做才能一目了然的,这样就引出了组合搜索的这个案例 ...

  7. python类的组合

    类的组合,即在类实例化时,将另一个类的实例作为参数传入,这样可以将两个实例关联起来. 当类之间有显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好. 例如,描述一个机器人类,这个大类是由很多 ...

  8. python 实现排列组合

    1.python语言简单.方便,其内部可以快速实现排列组合算法,下面做简单介绍. 2.一个列表数据任意组合 2.1主要是利用自带的库 #_*_ coding:utf-8 _*_ #__author__ ...

  9. python 继承与组合

    一.组合 #老师 课程 生日 class Course: def __init__(self,name,period,price): self.name = name self.period = pe ...

  10. python基础之组合继承多态

    组合 1.什么是组合 组合就是一个类的对象具备一个指向另外一个类的对象的属性 2.为何用组合 组合可以减少代码冗余 3.如何使用 class People: def __init__(self,nam ...

随机推荐

  1. [poj2288] Islands and Bridges (状压dp)

    Description Given a map of islands and bridges that connect these islands, a Hamilton path, as we al ...

  2. 【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) C】Equalize

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] Swap操作显然只能对(i-1,i)执行才有用. 不然直接将i翻转以及j翻转 显然比直接交换更优. 那么现在我们就相当于有两种操作. ...

  3. 【Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) A】 Doggo Recoloring

    [链接] 我是链接,点我呀:) [题意] 你可以把出现次数大于1的颜色换成其他颜色. 问你最后能不能全都变成同一种颜色 [题解] 判断一下有没有出现次数大于1的就好. 有的话.显然可以一直用它变颜色. ...

  4. C# 低耦合 高内聚

    低耦合 loosely Coupling 松散的耦合关系=炮友 couple=夫妻 夫妻=法律约束.家庭.生活.财产.繁衍 炮友:吃喝玩乐,不会产生感情方面的依赖       内聚性 内聚性又称块内联 ...

  5. [ASP.NET]EF选一个空表的情况

    public List<DAL.StuFillAnswers> FillsToCheck(int sid,int eid) { using (DAL.ExamSysEntities db ...

  6. HDU 5372 Segment Game

    /** 多校联合2015-muti7-1004 <a target=_blank href="http://acm.hdu.edu.cn/showproblem.php?pid=537 ...

  7. NYOJ 145 聪明的小珂

    /* 题目大意:求解和输入数的互质的数 解题思路:求解和 n 互质的最大数.从n/2開始找 关键点:GCD函数的使用 解题人:lingnichong 解题时间:2014-10-04 16:11:55 ...

  8. Java之旅--Web.xml解析

    Windows的IIS,是用UI界面进行网站的配置.Linux以下的差点儿全部系统,都是使用配置文件来进行配置,Java容器(JBoss/Tomcat/Jetty/WebSphere/WebLogic ...

  9. Android监听程序自身被卸载

    概述: 假设不是一些特殊的情况,我想大家非常少会接触到这个需求.事实上Android的Java部分没有提供对应的接口.这里须要去调用C的代码,也就是说要写JNI了.关于JNI的初识.大家能够去參考我博 ...

  10. EntityFramework 找不到方法:“Void System.Data.Entity.DbModelBuilder.RegisterEntityType

    问题原因,EF当前版本没有该方法,将EF版本升级即可. 1.packages.config <package id="EntityFramework" version=&qu ...