一、创建北京和成都两个校区:

  1、创建Linux\Python两个课程

  2、创建北京校区的Python 3期课程和成都校区的Linux 1期课程

  3、管理员创建了北京校区的学员小张,并将其分配在了Python 3期

  4、管理员创建了讲师小周,并将其分配了Python 3期

  5、讲师小周创建了一条Python 3期的上课记录Day02

  6、讲师小周为Day02这节课所有的学院批改了作业,小张得了A,小王得了B

  7、学员小张查看了自己所报的课程

  8、学员小张在查看了自己在Python3的成绩列表然后退出了

  9、学院小张给了讲师小周好评

------------------------------------------------------------------

Course_list = []
class School(object):
    def __init__(self, school_name):
        self.school_name = school_name
        self.student_list = []
        self.teachers_list = []
       
        global Course_list
       
    def hire(self, obj):
        self.teacher_list.append(obj.name)
        print("我们现在聘请一个新老师{}".format(obj.name))
   
    def enroll(self, obj):
        self.student_list.append(obj.name)
        print("我们又有了一个新学员{}".format(obj.name))
class Grade(School):
    def __init__(self, school_name, grade_code, grade_course):
        super(Grade, self).__init__(school_name)
        self.code = grade_code
        self.course = grade_course
        self.members = []
        Course_list.append(self.course)
       
        print("我们现在有了{}的{}的{}".format(self.school_name, self.code, self.course))
       
    def course_info(self):
        print("课程大纲{} 是 day01, day02, day03".format(self.course))
       
Python = Grade("BJ",3,"Python")
Linux = Grade("CD",1,"Linux")
class School_member(object):
    def __init__(self, name, age, sex, role):
        self.name = name
        self.age = age
        self.sex = sex
        self.role = role
        self.course_list=[]
       
        print("我叫{}, 我是一个{}".format(self.name, self.role))
   
stu_num_id = 00
class Students(School_member):
    def __init__(self, name, age, sex, role, course):
        super(Students, self).__init__(name, age, sex, role)
        global stu_num_id
        stu_num_id += 1
        stu_id = course.school_name + "S" + str(course.code) + str(stu_num_id).zfill(2)
        #zfill 填充的作用,当只有一位数时前面填充0,只能对str类型做操作
       
        self.id = stu_id
        self.mrk_list={}
       
    def study(self, course):
            print("我来这里学习{}课,我的学号是{}".format(course, course, self, id))
           
    def pay(self, course):
            print("我交了1000块钱{}".format(course.course))
            self.course_list.append(course.course)
           
    def Praise(self, obj):
            print("{}觉得{}课真棒".format(self.name, obj.name))
           
    def mark_check(self):
            for i in self.mark_list.items():
                print(i)
               
    def out(self):
            print("我离开了")
tea_num_id = 00          
class Teachers(School_member):
    def __init__(self, name, age, sex, role, course):
        super(Teachers, self).__init__(name, age, sex, role)
        global tea_num_id
        tea_num_id += 1
        tea_id = course.school_name + "T" + str(course.code) + str(tea_num_id).zfill(2)
        # zfill  填充的作用  当只有一位数时前面填充0,只能对str类型做操作
        self.id = tea_id
   
    def teach(self, course):
        print("我来这里讲{}门课,我的id是{}".format(course, course, self,id))
       
    def record_mark(self, Date, course, obj, level):
        obj.mark_list['Day'+Date] = level
a = Students("小张", 18, "M", "student", Python)
Python.enroll(a)
a.study(Python)
a.pay(Python)
b = Students("小王", 22, "F", "student", Python)
Python.enroll(a)
b.study(Python)
b.pay(Python)
c = Teachers("小周", 30, "M", "teacher", Python)
Python.hire(c)
c.teach(Python)
t.record_mark("1", Python, a, "A")
t.record_mark("1", Python, b, "B")
t.record_mark("2", Python, a, "A")
t.record_mark("2", Python, b, "B")
print(b.course_list)
b.mark_check()
b.out()

Python---面向对象---修学校的更多相关文章

  1. python 面向对象进阶之内置方法

    一 isinstance(obj,cls)和issubclass(sub,super) 1.1,isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(obj ...

  2. python面向对象编程进阶

    python面向对象编程进阶 一.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 1 ...

  3. Python面向对象-day07

    写在前面 上课第七天,打卡: 时间的高效利用: 前言: 今天egon老师补充了下 is 和 == 的区别,整理如下:Python中变量的属性以及判断方法 一.面向过程和面向对象 - 1.面向过程 核心 ...

  4. python 面向对象高级应用(三)

    目录: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__getattr__ 二次加工标准类型(包装) __ ...

  5. python—面向对象设计

    一:三大编程范式 1.面向过程编程 2.函数式编程 3.面向对象编程 (类:把一类事物的相同的特征和动作整合到一起就是类,类是一个抽象的概念) (对象:就是基于类而创建的一个具体的事物 [具体存在的] ...

  6. python 面向对象初级篇

    Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...

  7. Python 面向对象 基础

    编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...

  8. python面向对象进阶(八)

    上一篇<Python 面向对象初级(七)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  9. python 面向对象(进阶篇)

    上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  10. python 面向对象编程学习

    1. 问题:将所有代码放入一个py文件:无法维护 方案:如果将代码才分放到多个py文件,好处: 1. 同一个名字的变量互相不影响 2.易于维护 3.引用模块: import module 2.包:解决 ...

随机推荐

  1. 阶段3 1.Mybatis_08.动态SQL_03.mybatis中动态sql语句-foreach和sql标签

    foreach标签 in的查询 sql语句好写,但是传参在映射文件里面改怎么传呢 定义一个List<Integer>成员变量,然后生成get和set 定义一个新的查询方法 open:开始符 ...

  2. 13 oracle数据库坏块-逻辑坏块(模拟/修复)

    13 oracle数据库坏块-逻辑坏块 逻辑数据坏块的场景1)oracle bug也可能导致逻辑坏块的产生. 特别是parallel dml. 例如:Bug 5621677 Logical corru ...

  3. 递归算法之不用乘号的乘法——用位移实现乘法(dart语言实现)

    前两天突发奇想,写一个乘法的实现,但不用乘号*.并测试一下性能如何.因此就有了下面的代码:(本文主要目的是为了玩递归和位移,因此仅限自然数) 首先,标准乘法: int commonMultiplica ...

  4. 6.文件所有权和权限----免费设置匿名----Windows键盘记录器----简介和python模块

    文件所有权和权限 touch --help cd Desktop mkdir Folder cd Folder clear touch Test1 Test2 Test3 Test4 ls ls -l ...

  5. Charles抓包过滤的四种方式

    日常测试中,经常要抓包看请求的request,response是不是传的对,返回的字段值对不对,众多的请求中如何找到自己想要的请求,就需要过滤请求,Charles有4种过滤方式,用那一种都可以,看个人 ...

  6. HashMap源码分析-jdk1.7

    注:转载请注明出处!!!!!!!这里咱们看的是JDK1.7版本的HashMap 学习HashMap前先知道熟悉运算符合 *左移 << :就是该数对应二进制码整体左移,左边超出的部分舍弃,右 ...

  7. [转帖]22款让Kubernetes锦上添花的开源工具

    22款让Kubernetes锦上添花的开源工具 http://soft.zhiding.cn/software_zone/2019/0506/3117650.shtml 找时间尝试一下. 至顶网软件频 ...

  8. 安装Linux系统CentOS6.5

    个人机器搭建分布式环境时避免要使用虚拟机来满足分布式环境所需的机器,当然伪分布式除外. 简单记录下虚拟机环境的创建过程,Mac上常用的虚拟机VMware Fusion. 虚拟机资源库中新建虚拟机: 选 ...

  9. ls 命令通配符(3)

    使用过正则的人应该很熟悉通配符.如果非要解释的话,我找来一段: 通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件. 当查找文件夹时,可以使用它来代替一个或多个真正字符:当不知道真正 ...

  10. 洛谷P1823 [COI2007] Patrik 音乐会的等待(单调栈+二分查找)

    洛谷P1823 [COI2007] Patrik 音乐会的等待(单调栈+二分查找) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1333275 这个题不是很 ...