对学校、老师、学生做一个分类,并抽象成类。并实现各自的一些功能。代码如下:

父类1:学校

  1. # 学校
  2. class School(object):
  3. def __init__(self,name,addr):
  4. self.name = name
  5. self.addr = addr
  6. self.students = []
  7. self.teachers = []
  8.  
  9. # 注册
  10. def stu_regin(self,stu_obj):
  11. print('给学员%s办理注册。'%stu_obj.name)
  12. self.students.append(stu_obj)
  13.  
  14. # 入职
  15. def tec_regin(self,tec_obj):
  16. print('给老师%s办理入职。'%tec_obj.name)
  17. self.teachers.append(tec_obj)

学校

父类2:学校成员

  1. class SchoolMember(object):
  2. def __init__(self,name,age):
  3. self.name = name
  4. self.age = age
  5.  
  6. def tell(self):
  7. print('学校成员信息。')

学校成员

子类1:老师

  1. # 老师
  2. class Teacher(SchoolMember):
  3. def __init__(self,name,age,course,salary):
  4. super(Teacher,self).__init__(name,age)
  5. self.course = course
  6. self.salary = salary
  7.  
  8. def tell(self):
  9. print('''
  10. ---- %s老师的信息 ----
  11. 姓名:%s
  12. 年龄:%s
  13. 课程:%s
  14. 工资:%s
  15. '''%(self.name,self.name,self.age,self.course,self.salary))
  16.  
  17. def teach(self):
  18. print('%s老师正在给学生上%s课'%(self.name,self.course))

老师

子类2:学生

  1. # 学员
  2. class Student(SchoolMember):
  3. def __init__(self,name,age,stu_id,class_id,fee):
  4. super(Student,self).__init__(name,age)
  5. self.stu_id = stu_id
  6. self.class_id = class_id
  7. self.fee = fee
  8.  
  9. def tell(self):
  10. print('''
  11. ---- %s学生的信息 ----
  12. 姓名:%s
  13. 年龄:%s
  14. 学籍号:%s
  15. 班级:%s
  16. ''' % (self.name, self.name, self.age, self.stu_id, self.class_id))
  17.  
  18. def pay_fee(self):
  19. print('%s交了%s元学费。'%(self.name,self.fee))

学生

实例化类:

  1. # 生成学校
  2. sch = School('成都大学','成都')
  3.  
  4. # 生成老师
  5. te1 = Teacher("张三",35,"python3",10000)
  6. te2 = Teacher('李四','28','JAVA','10000')
  7. te3 = Teacher('王五','25','C','10000')
  8.  
  9. # 生成学生
  10. st1 = Student('李稍等','25','001','python入门班','8000')
  11. st2 = Student('张撒旦','32','002','C入门班','5000')
  12. st3 = Student('王而非','25','003','python入门班','8000')

实例化

查看老师信息,调用老师tell方法:

  1. # 查看老师信息
  2. te1.tell()

给老师办理入职,调用学校的tec_regin方法:

  1. # 老师入职
  2. sch.tec_regin(te1)

给学生办理注册,调用学校的stu_regin方法:

  1. # 学生注册
  2. sch.stu_regin(st1)
  3. sch.stu_regin(st2)
  4. sch.stu_regin(st3)

老师授课:

  1. # 老师教课
  2. sch.teachers[0].teach()

学生交学费:

  1. # 学生交学费
  2. for s in sch.students:
  3. s.pay_fee()

执行结果:

初识python: 继承实例 - 学校、老师、学生的更多相关文章

  1. Python全栈day24(面向对象编程作业作业_定义学校老师课程班级学生类)

    面向对象作业 作业_定义学校老师课程班级学生类.py #面向对象编程作业,定义学校老师课程班级学生类 #定义几个类,尽可能定义多的数据属性及函数属性 class School: def __init_ ...

  2. python继承的实例

    class SchoolMember(object):#定义学校 member=0#默认成员为0个 amount=0#默认学费为0元 def __init__(self,name,age,sex):# ...

  3. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  4. Python中的单继承与多继承实例分析

    Python中的单继承与多继承实例分析 本文实例讲述了Python中的单继承与多继承.分享给大家供大家参考,具体如下: 单继承 一.介绍 Python 同样支持类的继承,如果一种语言不支持继承,类就没 ...

  5. Django 小实例S1 简易学生选课管理系统 10 老师课程业务实现

    Django 小实例S1 简易学生选课管理系统 第10节--老师课程业务实现 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块中,老师将要使 ...

  6. 初识python面向对象

    一.初识python面向对象: class Person: #使用class关键字定义一个类 age=0 #类变量(静态变量) def eat(self,food): #定义一个方法 self.age ...

  7. @1-2初识Python爬虫

    初识Python爬虫 Python爬虫(入门+进阶)     DC学院 环境搭建: Python2与Python3的差异:python2与python3整体差异不大,大多是一些语法上的区别,考虑到py ...

  8. 孤荷凌寒自学python第二十一天初识python的类

    孤荷凌寒自学python第二十一天初识python的类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 类是面向对象的编程语言非常重要的概念. 编程语言的进化史中从顺序编程到结构化编程,最后才 ...

  9. Django 小实例S1 简易学生选课管理系统 12 CSS样式完善

    Django 小实例S1 简易学生选课管理系统 第12节--CSS样式完善 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块的逻辑代码到这里 ...

随机推荐

  1. LVS nat模型+dr模型

    nat模型 在 rs1 和 rs2  安装httpd  并配置测试页,启动 [root@rs1 ~]# yum install httpd -y[root@rs1 ~]# echo "thi ...

  2. 【Linux】【Services】【DNS】使用Bind搭建DNS服务

    1. 简介 1.1. 实现的功能:DNS解析以及智能转发 1.2. 官方文档: 1.3. 基础概念:http://www.cnblogs.com/demonzk/p/6494968.html 2. 环 ...

  3. ubuntu 使用mysql

    一: 安装: sudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get install libmys ...

  4. net start Mysql 启动服务时 ,显示"Mysql服务正在启动 Mysql服务无法启动 服务没有报告任何错误

    一.问题 有时候,输入net start Mysql 启动服务时 mysql>net start Mysql 显示 Mysql服务正在启动 Mysql服务无法启动 服务没有报告任何错误 二.原因 ...

  5. noVNC连接多台远程主机

    noVNC是一个HTML5 VNC客户端,采用HTML5 websockets.Canvas和JavaScript实现,noVNC被普遍应用于各大云计算.虚拟机控制面板中,比如OpenStack Da ...

  6. 小迪安全 Web安全 基础入门 - 第十天 - 信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

    一.本节知识点思维导图 二.APP-外在资产收集 1.将APP安装在模拟器中,修改模拟器代理设置,使用Fiddler.Burpsuite.Charles等抓包工具抓取APP访问的http协议数据包,抓 ...

  7. CSS选择器类型总结

    CSS选择器类型总结 1.通用选择器 一般用于给所有元素做一些通用性的样式设置,比如清除内边距.外边距等.但是效率比较低,尽量不要使用. * { margin: 0; padding: 0; } 2. ...

  8. .NET Core基础篇之:白话管道中间件

    在.Net Core中,管道往往伴随着请求一起出现.客户端发起Http请求,服务端去响应这个请求,之间的过程都在管道内进行. 举一个生活中比较常见的例子:旅游景区. 我们都知道,有些景区大门离景区很远 ...

  9. Django modules模块

    http://www.cnblogs.com/wupeiqi/articles/5246483.html

  10. Vim使用简介

    Vim操作 Vim真的很酷:D 编辑模式 正常模式:在文件中四处移动光标进行修改 插入模式:插入文本 替换模式:替换文本 可视化(一般,行,块)模式:选中文本块 命令模式:用于执行命令 在不同的操作模 ...