import uuid
import pickle
import os
# 学校类
class School:
#校区的名字:如"老男孩上海校区"
#校区的地址:如"上海虹桥"
def __init__(self,name,area):
self.name = name
self.area = area
self.classlist = []
def save(self):
with open(f'school/{self.name}.pickle','wb') as f:
pickle.dump(self,f)
def tell_class(self):
print(f'{self.name}:')
for class_id in self.classlist:
with open(f'class/{class_id}.pickle', 'rb') as f:
class_obj = pickle.load(f)
class_obj.tell_class() #校区创建完毕后,可以为每个校区关联班级
def choose_class(self,class_obj):
self.classlist.append(class_obj.id) # 教室类
class SchoolClass:
#班级名字
#班级所在校区
def __init__(self,name,campus):
self.id = uuid.uuid4()
self.name = name
self.campus = campus
self.course_list = []
#班级创建完毕后,可以为每个班级关联课程
def choose_course(self,course_obj):
self.course_list.append(course_obj.id)
def save(self):
with open(f'class/{self.id}.pickle','wb') as f:
pickle.dump(self,f)
def tell_class(self):
print(f'班级名称:{self.name} 班级校区:{self.campus}')
# 课程类
class Course:
#课程名字
#课程周期
#课程价格
def __init__(self,cou_name,circle,price):
self.course_name = cou_name
self.id = uuid.uuid4()
self.circle = circle
self.price = price
def save(self):
with open(f'course/{self.id}.pickle','wb') as f:
pickle.dump(self,f)
def tell_course(self):
print(f'{self.course_name},{self.circle},{self.price}')
# 学生类
class Student:
def __init__(self,s_school,stu_name,age,sno,gender):
#学生的学校
#学生的姓名
#学生的年龄
#学号
#学生的性别
self.id = uuid.uuid4()
self.student_school = s_school
self.student_name = stu_name
self.student_age = age
self.student_sno = sno
self.student_gender = gender
#学生创建完毕后,学生可以选择班级
def choose_class(self,class_name):
self.class_name = class_name
def save(self):
with open(f'Student/{self.id}.pickle','wb') as f:
pickle.dump(self,f)
# 老师类
class Teacher:
def __init__(self,t_name,t_age,salary,level):
#老师的名字
#老师的年龄
#老师的薪资
#老师的等级
self.id = uuid.uuid4()
self.teacheer_name = t_name
self.teacheer_age = t_age
self.teacheer_salary = salary
self.teacheer_level = level
#老师创建完毕后,可以为学生打分
def save(self):
with open(f'Teacher/{self.id}.pickle','wb') as f:
pickle.dump(self,f)
def student_grade(self,student_obj,grade):
student_obj.grade = grade # 创建学校对象
school_obj = School('老男孩','上海') # 序列化保存学校信息
school_obj.save() # 创建班级对象
class_obj = SchoolClass('脱产14期','上海') # 序列化保存班级信息
class_obj.save() # 关联学校和班级
school_obj.choose_class(class_obj) # 反序列化得到班级信息
school_obj.tell_class()

day28 作业的更多相关文章

  1. day28作业

    import os import uuid import pickle from conf import settings class School: def __init__(self,name,a ...

  2. python 作业

    Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与 ...

  3. day28 进程(Process)

    day28 进程(Process) 1.进程的概念 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础. # 进程是系统进行 ...

  4. python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)

    类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...

  5. SQLServer2005创建定时作业任务

    SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点 创建步骤:(使用最高权限的账户登录--sa) 一.启动SQL Server代理(SQL Server ...

  6. 使用T-SQL找出执行时间过长的作业

        有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下:   SELECT sj.name , ...

  7. T-SQL检查停止的复制作业代理,并启动

        有时候搭建的复制在作业比较多的时候,会因为某些情况导致代理停止或出错,如果分发代理时间停止稍微过长可能导致复制延期,从而需要从新初始化复制,带来问题.因此我写了一个脚本定期检查处于停止状态的分 ...

  8. Python09作业思路及源码:高级FTP服务器开发(仅供参考)

    高级FTP服务器开发 一,作业要求 高级FTP服务器开发 用户加密认证(完成) 多用户同时登陆(完成) 每个用户有不同家目录且只能访问自己的家目录(完成) 对用户进行磁盘配额,不同用户配额可不同(完成 ...

  9. 个人作业week3——代码复审

    1.     软件工程师的成长 感想 看了这么多博客,收获颇丰.一方面是对大牛们的计算机之路有了一定的了解,另一方面还是态度最重要,或者说用不用功最重要.这些博客里好些都是九几年或者零几年就开始学习编 ...

随机推荐

  1. 手把手教你用JS/Vue/React实现幸运水果机(80后情怀之作)

    项目体验地址 免费视频教程 分别使用原生JS,Vue和React,手把手教你开发一个H5小游戏,快速上手Vue和React框架的使用. 项目截图 在线体验 在线体验 游戏介绍 幸运水果机是一款街机游戏 ...

  2. Nice Jquery Validator 【从 jQuery Validation 迁移】

    1. 初始化表单验证 .validate VS .validator jquery-validation : $("#myform").validate(options) nice ...

  3. git clone 时注意点

    环境: 在公司访问外网需要设置代理,另外,在公司局域网内架设了一台 GIT 服务器. 在使用 git clone 时,不能设置成 git 使用代理: git config --global http. ...

  4. Linux MySQL Proxy 读写分离

    导读 因为读写分离是建立在MySQL集群主从复制的基础上,还不了解的,先看我另一篇博客:点我直达 MySQL-Proxy简介 mysql-proxy是mysql官方提供的mysql中间件服务,上游可接 ...

  5. Win10下创建virtualenv Linux下创建

    虚拟环境 为什么要搭建虚拟环境 开发多个不同的项目 可能需要用到同一个包不同版本新版本会覆盖旧的 作用 虚拟环境 可以搭建独立的Python运行环境 使项目之间版本不受影响 Linux下如何搭建虚拟环 ...

  6. Jenkins项目构建运行

    [准备环境] 继Jenkins环境搭建完成后,进行插件的管理 [思路] 项目顺序是,开发提交代码到代码仓库,测试通过Jenkins拉下开发的代码打包部署: 1.开发提交代码 2.Jenkins自动从代 ...

  7. mybatis视频教程2-动态参数

    /MyBatis_04_DynamicSQL/src/com/atguigu/mybatis/dao/EmployeeMapperDynamicSQL.java package com.atguigu ...

  8. spring boot 和shiro的代码实战demo

    spring boot和shiro的代码实战 首先说明一下,这里不是基础教程,需要有一定的shiro知识,随便百度一下,都能找到很多的博客叫你基础,所以这里我只给出代码. 官方文档:http://sh ...

  9. 入门大数据---Spark_Streaming与流处理

    一.流处理 1.1 静态数据处理 在流处理之前,数据通常存储在数据库,文件系统或其他形式的存储系统中.应用程序根据需要查询数据或计算数据.这就是传统的静态数据处理架构.Hadoop 采用 HDFS 进 ...

  10. 写给.NET开发者的Python教程(一):引言

    距离上一篇博文已过去8个月了,这段时间发生了很多事情导致没能持续更新博客.这段时间除了工作繁忙,业余时间都投入到AI技术的学习中,后面一段时间将会给大家分享我作为一个.NET开发人员在深度学习领域学习 ...