继承,继承其它实例化样本的属性和方法,需要在声明里重新定义和使用

class School(object):
def __init__(self, name, addr):
self.name = name
self.addr = addr
self.student = [] # 用于进行学生类的存储
self.teacher = [] # 用于进行老师类的存储
def enroll(self, stu_obj):
print('招录进来学生%s'%stu_obj.name)
self.student.append(stu_obj) # 将学生类进行添加
def hire(self, staff_obj):
print('招募老师%s'%staff_obj.name)
self.teacher.append(staff_obj) # 将老师类进行添加 class Schoolmember(object): # 创建学校成员的父类
def __init__(self, name, age, sex): # 定义初始变量
self.name = name # 定义名字
self.age = age # 定义年龄
self.sex = sex # 定义性别
def teach(self): # 定义父类属性
pass class Teacher(Schoolmember): # 定义老师属性,继承父类
def __init__(self, name, age, sex, salary, course): # 变量声明
super(Teacher, self).__init__(name, age, sex) # 变量继承
self.salary = salary
self.course = course
def tell(self):
print('''
---info---%s
name %s
age %s
sex %s
salary %s
course %s
'''%(self.name, self.name, self.age, self.sex, self.salary, self.course))
def teach(self):
print('%s is teaching'%self.name) class Student(Schoolmember):
def __init__(self, name, age, sex, stu_id, grade):
super(Student, self).__init__(name, age, sex)
self.stu_id = stu_id
self.grade = grade def tell(self):
print('''
---info---%s
name %s
age %s
sex %s
stu_id %s
grade %s
''' % (self.name, self.name, self.age, self.sex, self.stu_id, self.grade))
def paid_tution(self, money):
print('%s has paid tution for $%s'%(self.name, money)) # 创建实例
school = School('oldboy', '沙河') s1 = Student('aaa', 22, 'M', '', 'python')
s2 = Student('bbb', 23, 'F', '', 'linux') t1 = Teacher('ccc', 333, 'W', 10000, 'python')
t2 = Teacher('ddd', 444, 'F', 20000, 'linux') school.enroll(s1)
school.hire(t1)
school.teacher[0].teach()
for stu in school.student:
stu.paid_tution(20000)

多态: 表示在父类里定义一个函数,在子类里都可以使用

class Animal(object):
def __init__(self, name): # 初始化
self.name = name
@staticmethod # 静态变量装饰器, 这样不需要输入self变量
def animal_talk(obj):
obj.talk() class dog(Animal): # 定义dog类, 继承Animal
def __init__(self, name):
super(dog, self).__init__(name) def talk(self): # 定义函数属性
print('wowo') class cat(Animal):
def __init__(self, name):
super(cat, self).__init__(name) def talk(self):
print('Meow') c = cat('aaa') # 实例化
d = dog('bbb')
Animal.animal_talk(c) # 调用Animal里面的属性
Animal.animal_talk(d)

python 面对对象 类(继承, 多态)的更多相关文章

  1. 干货:python面对对象类继承简介

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:python视觉算法 PS:如有需要Python学习资料的小伙伴可以加 ...

  2. 小学生绞尽脑汁也学不会的python(面对对象-----类与类之间的关系)

    小学生绞尽脑汁也学不会的python(面对对象-----类与类之间的关系 1. 依赖关系. 最轻的一种关系 在方法中引入另一个类的对象 class Elephant: def __init__(sel ...

  3. 16、python面对对象之类和继承

    前言:本文主要介绍python面对对象中的类和继承,包括类方法.静态方法.只读属性.继承等. 一.类方法 1.类方法定义 使用装饰器@classmethod装饰,且第一个参数必须是当前类对象,该参数名 ...

  4. Python - 面对对象(基础)

    目录 Python - 面对对象(基础) 一. 概述 二. 创建类和对象 三. 面向对象三大特征 封装 继承 多态 Python - 面对对象(基础) 一. 概述 面向过程:根据业务逻辑从上到下写垒代 ...

  5. Python设计模式 - 基础 - 封装 & 继承 & 多态

    面向对象的核心是对象,世间万物都可以看作对象,任何一个对象都可以通过一系列属性和行为来描述,可以包含任意数量和类型的数据或操作.类是用来描述具有相同属性和方法的所有对象的集合.类通常是抽象化的概念,而 ...

  6. 15、python面对对象之类和对象

    前言:本文主要介绍python面对对象中的类和对象,包括类和对象的概念.类的定义.类属性.实例属性及实例方法等. 一.类和对象的概念 问题:什么是类?什么是实例对象? 类:是一类事物的抽象概念,不是真 ...

  7. Python - 面对对象(进阶)

    目录 Python - 面对对象(进阶) 类的成员 一. 字段 二. 方法 三. 属性 类的修饰符 类的特殊成员 Python - 面对对象(进阶) 类的成员 一. 字段 字段包括:普通字段和静态字段 ...

  8. Python - 面对对象(其他相关,异常处理,反射,单例模式,等..)

    目录 Python - 面对对象(其他相关,异常处理,反射,等..) 一.isinstance(obj, cls) 二.issubclass(sub, super) 三.异常处理 1. 异常处理 2. ...

  9. 小学生绞尽脑汁也学不会的python(面对对象-----成员)

    小学生绞尽脑汁也学不会的python(面对对象-----成员) 成员 class Person: def __init__(self, name, num, gender, birthday): # ...

随机推荐

  1. vue 节流

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. hadoop 中ALL Applications 中Tracking 下History查找不到MapReduce Job 日志

    运行一个Map Reduce job 想查看日志: 点击History ,找不到网页 解决办法如下: 1.其中有一个进程是需要启动的: Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行 ...

  3. windows2012获取明文密码

    windows 2012获取明文密码 导hash的话用常规的方法就可以. 修改注册表 reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contr ...

  4. 2.Nginx基本配置

    1. Nginx相关概念 代理服务器一般分为正向代理(通常直接称为代理服务器)和反向代理. 通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发 ...

  5. 查看电脑物理地址(MAC)方法

    首先打开电脑,按ctrl+R键,将会出现以下界面 然后直接点击确认即可,会出现管理员界面,如下 我们现在有两种查看MAC地址的方法: 方法一:.直接输入ipconfig/all(或者输入ipconfi ...

  6. Webpack编译提示内存溢出解决方案

    在项目开发中,随着业务需求的复杂项目随之增大,再加上同一个文件被引用次数过于频繁在开发编译或者上线打包时经常会出现如下错误: 这个报错的意思就是Node内存不足所导致的,我们都知道 Node 是基于V ...

  7. 【AGC003 E】Sequential operations on Sequence

    Description 你有一个长度为 \(n\) 的序列,第 \(i\) 项为 \(i\). 有 \(m\) 次操作,每次操作给定一个 \(x\),你需要将序列无限循环后截取前 \(x\) 项,作为 ...

  8. Python的在线编辑环境

    另外,再提供几个Python的在线编辑环境,可以直接写代码并且运行的环境. 在线Python实验室:http://www.pythoner.cn/labs/ 在线Python编辑器:http://ww ...

  9. metapath2vec 笔记

    Homogeneous networks: representative of singular type of nodes and relationships Challenges: multipl ...

  10. wcPro--WordCount扩展

    Github:https://github.com/whoNamedCody/wcPro PSP表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划     ...