python------面向对象介绍之经典类与新式类的继承顺序
一. 经典类与新式类的继承顺序
- 1 class A:
- def __init__(self):
- print("A")
- class B(A):
- def __init__(self):
- print("B")
- class C(A):
- def __init__(self):
- print("C")
- class D(B,C):
- pass
- obj = D()
注:python2.x 经典类是按深度优先来继承的,新式类是按广度优先来继承的;
python3.x 经典类和新式类都是按广度优先继承的。
二. 继承实例
- """继承实例"""
- class School(object):
- def __init__(self,name,addr):
- self.name = name
- self.addr = addr
- self.students = []
- self.staffs = []
- def enroll(self,stu_obj):
- print("为学员%s 办理注册手续"% stu_obj)
- self.students.append(stu_obj)
- def hire(self,staff_obj):
- print("雇佣新员工 %s" % staff_obj)
- self.staffs.append(staff_obj)
- class SchoolMember(object):
- def __init__(self,name,age,sex):
- self.name = name
- self.age = age
- self.sex = sex
- def tell(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 of Teacher : %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 course[%s]" %(self.name,self.course))
- 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 of Student : %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 pay_tuition(self,amount):
- print("%s has paid tution for $%s" %(self.name,amount))
- school = School("天字一号","外太空")
- t1 = Teacher("xiaolaizi",20,"m",20000,"english")
- t2 = Teacher("zhangsan",18,"m",200,"chinese")
- s1 = Student("lisi",10,"f",110119,"python")
- s2 = Student("wangmaiz",8,"f",110118,"C++")
- t1.tell()
- s1.tell()
- school.hire(t1)
- school.enroll(s1)
- print(school.students)
- print(school.staffs)
- school.staffs[0].teach()
- for stu in school.students:
- stu.pay_tuition(3000)
python------面向对象介绍之经典类与新式类的继承顺序的更多相关文章
- python 之 面向对象基础(继承与派生,经典类与新式类)
7.2 继承与派生 7.21继承 1.什么是继承? 继承是一种新建类的的方式,在python中支持一个子类继承多个父类.新建的类称为子类或者派生类,父类又可以称为基类或者超类,子类会”遗传“父类的属性 ...
- Python 经典类和新式类
#!/usr/bin/env python# -*- coding:utf-8 -*-# 作者:Presley# 邮箱:1209989516@qq.com# 时间:2018-10-21# 新式类和经典 ...
- python中的__new__与__init__,新式类和经典类(2.x)
在python2.x中,从object继承得来的类称为新式类(如class A(object))不从object继承得来的类称为经典类(如class A()) 新式类跟经典类的差别主要是以下几点: 1 ...
- 二十三. Python基础(23)--经典类和新式类
二十三. Python基础(23)--经典类和新式类 ●知识框架 ●接口类&抽象类的实现 # 接口类&抽象类的实现 #①抛出异常法 class Parent(object): ...
- 【python】-- 类的多继承、经典类、新式类
继承知识点补充 在python还支持多继承,但是一般我们很少用,有些语言干脆就不支持多继承,有多继承,就会带来两个概念,经典类和新式类. 一.多继承 之前我们都是讲的单继承,那么什么是多继承呢?说白了 ...
- python中经典类和新式类的区别
要知道经典类和新式类的区别,首先要掌握类的继承.类的继承的一个优点就是减少代码,而且使代码看起来结构很完整. 那什么是经典类,什么是新式类呢? 经典类和新式类的主要区别就是类的继承的方式 ,经典类遵循 ...
- Python【经典类与新式类】
经典类多继承的调用方法顺序是:深度优先查询,如下图: 新式类多继承的调用方法顺序是:广度优先查询,如下图: 可以使用下面的代码进行实验验证: #经典类class A: def __init__ ...
- python基础--类的经典类vs新式类
经典类VS新式类区别 1)写法新式类class Person(object):#new style 经典类class Persion: #classical style 2)调用父类 新式写法用sup ...
- python学习笔记(二十六)经典类和新式类的区别
首先了解一下什么是经典类,什么是新式类 class Person: #经典类 pass class Person2(object): #新式类 pass #类名首字母都大写 #在python3里面经典 ...
随机推荐
- TNS
Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器 ORACLE当中,如果想访问某 ...
- Gameobject.Find和Transform.Find应用区别
using UnityEngine;using System.Collections; public class test : MonoBehaviour{ private GameObject ro ...
- Mysql 实列结构-进程
一.MySQL后台进程简介 master thread与四大I/O线程:read thread.write thread.redo log thread.change buffer thread与 p ...
- C++基础知识:操作符重载
1.C++标准库: C++标准库并不是C++语言的一部分C++标准库是由C++语言编写而成的类库和函数的集合C++标准库中定义的类和对象都位于std命名空间中C++标准库的头文件都不带.h后缀C++标 ...
- 玩转 React 【第03期】:邂逅 React 组件
上期回顾 前文我们讲解了 React 模板 JSX,接着我们继续来看看 React 组件又是如何工作的呢? 组件化开发到了今天已经是大家的共识,在 React 中,组件同样也是组成我们整个项目的基本单 ...
- Python 基础关于编码
一.编码的种类: 1 acsic码 基本不用 不同编码之间互用会产生乱码, 2unicode A 字母 4个字节 00000000 00000000 00100100 01000 ...
- python 正则进阶
1.group 除了简单地判断是否匹配之外,正则表达式还有提取子串的强大功能.用()表示的就是要提取的分组(Group).比如:^(\d{3})-(\d{3,8})$分别定义了两个组,可以直接从匹配的 ...
- 爬虫系列1:python简易爬虫分析
决定写一个小的爬虫系列,本文是第一篇,讲爬虫的基本原理和简易示例. 1.单个网页的简易爬虫 以下爬虫的主要功能是爬取百度贴吧中某一页面的所有图片.代码由主要有两个函数:其中getHtml()通过页面u ...
- python 1-10考试
- POJ 2234 Matches Game(Nim博弈裸题)
Description Here is a simple game. In this game, there are several piles of matches and two players. ...