# 1、练习上课作业讲解的面向对象代码,明天默写

# 2、基于上课作业讲解的面向对象代码,扩写Student类

# 3、加入序列化与反序列化操作

# 4、对象之间的关联采用id号

# 5、可以通过id找到对应的文件,然后从文件中反序列化出执行的学校、班级、课程、学生对象

import pickle

import uuid

class School:

school_name = 'OLDBOY'

def __init__(self,name,addr):

self.uid=uuid.uuid4()

self.nickname=name

self.addr = addr

self.classes = []

def related_class(self,class_obj):

self.classes.append(class_obj.uid)

def getinfo_class(self):

print(self.nickname.center(60,'-'))

for class_uid in self.classes:

with open(f'{class_uid}.pkl','rb')as f:

class_obj = pickle.load(f)

class_obj.getinfo_course()

def save(self):

with open(f'{self.uid}.pkl','wb')as f:

pickle.dump(self,f)

class Class:

def __init__(self,name):

self.uid = uuid.uuid4()

self.name = name

self.course = None

def related_course(self,course_obj):

self.course = course_obj.uid

def getinfo_course(self):

print('%s' % self.name,end=" ")

with open(f'{self.course}.pkl','rb')as f:

course_obj = pickle.load(f)

course_obj.getinfo_course()

def save(self):

with open(f'{self.uid}.pkl','wb')as f:

pickle.dump(self,f)

class Course:

def __init__(self,name,period,price):

self.uid = uuid.uuid4()

self.name = name

self.period = period

self.price = price

def getinfo_course(self):

print(f'')

def save(self):

with open(f'{self.uid}.pkl','wb')as f:

pickle.dump(self,f)

class Student:

# 学生的学校

# 学生的姓名

# 学生的年龄

# 学号

# 学生的性别

def __init__(self,school,name,age,number,gender):

self.uid = uuid.uuid4()

self.school = school

self.name = name

self.age = age

self.number = number

self.gender = gender

def getinfo_student(self):

print(f'')

def choose(self,course_obj):

self.course = course_obj.uid

def save(self):

with open(f'{self.uid}.pkl','wb')as f:

pickle.dump(self,f)

school_obj1 = School('上海校区','虹桥')

school_obj2 = School('北京校区','北京某地')

class_obj1 = Class('脱产14期')

class_obj2 = Class('脱产29期')

course_obj1 = Course('python全栈','6mons','20000')

course_obj2 = Course('linux运维','5mons','18000')

student_obj1 = Student('上海校区','西楼','24','007','男')

student_obj2 = Student('北京校区','黑人','18','666','男')

school_obj1.related_class(class_obj1)

class_obj1.related_course(course_obj1)

school_obj1.save()

# school_obj2.save()

class_obj1.save()

# class_obj2.save()

course_obj1.save()

# course_obj2.save()

# student_obj1.save()

# student_obj2.save()

school_obj1.getinfo_class()

python小课堂28_python学习28——课后练习相关推荐

  1. python小课堂28_python小课堂28

    前言 嗨!大家好哇,一星期没见了,后台收到朋友的留言以为我停更了....哇哈哈哈时间永远留不住,在春节期间,拥有这么多空闲时间的你,有木有好好充电呢?让我们继续回归python小课堂之路,本章为进阶篇 ...

  2. 【python小课堂专栏】python小课堂11 - 变量篇

    python小课堂11 - 变量篇 前言 上周偷了点懒,周四到周末断更了,后来思考了下,前一阵儿的更新频率达到了日日更,虽然每章小知识都很详细..但是同学建议进度加快,emmm-然后我决定拉长更新周期 ...

  3. 【python小课堂专栏】python小课堂31 - 初识原生爬虫

    python小课堂31 - 初识原生爬虫 前言 在上一期介绍了爬虫之前必会浏览器的开发者工具,忘记的童鞋可以在回顾一下: python小课堂30 - 爬虫之前必会的浏览器开发者工具. 本篇文章将以实战 ...

  4. 【python小课堂专栏】python小课堂15 - 史上最详细的包和模块import讲解篇

    python小课堂15 - 史上最详细的包和模块import讲解篇 前言 在大量的代码设计中,我们不可能将所有代码都写在一个.py文件,所以有了包.模块,而为了代码可以重复利用(复用性),就有了类.函 ...

  5. python小课堂25_Python入门第25课——小案例之随机数(只读课堂)

    欢迎来到"只读课堂"! In [1]: #这节课我们来用几个小案例练手: In [2]: # 1.扑克牌洗牌 # 2.彩票随机号码生成 开始打代码 "彩票" I ...

  6. python爬虫作用小工具_【python小课堂|史上最全的Python爬虫工具列表大全】- 环球网校...

    [摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有python学习者关注Python爬 ...

  7. python小课堂25_python小课堂-循环

    #! /user/bin/python 默认调用python # -*- coding:utf-8 -*-    默认utf-8 编码 import getpass  密码隐藏模块 # break结束 ...

  8. 韩信点兵python源代码_少儿编程|Python小课堂 – 韩信点兵

    相传,韩信才智过人,从不直接清点军队的人数,只要让士兵三人一排,五人一排,七人一排地变换队形,而每次他只扫一眼排位就知道总人数了.输入包含多组数据,每组数据包含3个非负整数a,b,c.表示每种队形的排 ...

  9. python寻找完全平方数_少儿编程|Python小课堂 – 寻找aabb完全平方数

    某个数如果是另一个整数的完全平方,那么我们就称这个数为完全平方数,也叫做平方数.比如:0,1,4,9,16,25,36等. 我们的任务是找到形如aabb的这样的完全平方数 (即前两位相等,后两位也相等 ...

最新文章

  1. 基于Go语言来理解Tensorflow
  2. 别得意,你只是假装收藏了而已
  3. 【bzoj4176】Lucas的数论 莫比乌斯反演+杜教筛
  4. LeetCode Algorithm 160. 相交链表
  5. Python 实现 csv文件转换成json文件
  6. C - Cats Gym - 102875C
  7. Node.js小Httpserver
  8. BZOJ 2820: YY的GCD
  9. 花书+吴恩达深度学习(十七)序列模型之长短期记忆 LSTM 和门控循环单元 GRU
  10. Oracle 9i和10g安装后的基本环境与服务
  11. .Net 接入CAS 遇到的坑
  12. 【安全】什么是0day漏洞?
  13. Maven历史版本下载
  14. 计算机桌面上的微信图标不显示不出来怎么办,怎么隐藏电脑上微信的图标显示不出来怎么办...
  15. 【U8】凭证上修改使用自定义项科目的辅助信息
  16. BootStrap3-基础入门
  17. linux:挂载、rpm、yum、scp、ssh、crontab、时钟同步
  18. python 会计分录模板_常见会计分录大全(15种小企业模板)
  19. 15个有效学习方法【转载】
  20. 使用JSONObject 读取 jason对象中的key

热门文章

  1. hmr webpack 不编译_一文搞懂 webpack HMR 原理
  2. Xamarin XAML语言教程ContentView视图作为自定义视图的父类
  3. python 查看数据结构类型_python标准数据结构类型
  4. 关于python那些事_Python 入门你必须知道的那些事
  5. anaconda基本概念,常用命令
  6. Magic Leap 2实测出炉:视场角增大20度,重量减轻20%,透光率低至0.3%让AR特效更逼真...
  7. 一键cosplay各路动漫人物!快手的这个BlendGAN火了 | NeurIPS 2021
  8. 爷青回!GAN生成的超级马里奥关卡,可以永不通关的那种
  9. MindCon | 5天啦,你有领取MSG城市专属徽章吗?
  10. 理想汽车事故,智能短板暴露