一. 经典类与新式类的继承顺序

  1. 1 class A:
  2. def __init__(self):
  3. print("A")
  4.  
  5. class B(A):
  6. def __init__(self):
  7. print("B")
  8.  
  9. class C(A):
  10. def __init__(self):
  11. print("C")
  12.  
  13. class D(B,C):
  14. pass
  15.  
  16. obj = D()

注:python2.x 经典类是按深度优先来继承的,新式类是按广度优先来继承的;

python3.x  经典类和新式类都是按广度优先继承的。

二. 继承实例

  1. """继承实例"""
  2. class School(object):
  3. def __init__(self,name,addr):
  4. self.name = name
  5. self.addr = addr
  6. self.students = []
  7. self.staffs = []
  8.  
  9. def enroll(self,stu_obj):
  10. print("为学员%s 办理注册手续"% stu_obj)
  11. self.students.append(stu_obj)
  12. def hire(self,staff_obj):
  13. print("雇佣新员工 %s" % staff_obj)
  14. self.staffs.append(staff_obj)
  15.  
  16. class SchoolMember(object):
  17. def __init__(self,name,age,sex):
  18. self.name = name
  19. self.age = age
  20. self.sex = sex
  21. def tell(self):
  22. pass
  23.  
  24. class Teacher(SchoolMember):
  25. def __init__(self,name,age,sex,salary,course):
  26. super(Teacher,self).__init__(name,age,sex)
  27. self.salary = salary
  28. self.course = course
  29. def tell(self):
  30. print('''
  31. ------info of Teacher : %s----
  32. Name :%s
  33. Age :%s
  34. Sex :%s
  35. Salary :%s
  36. Course :%s
  37. '''%(self.name,self.name,self.age,self.sex,self.salary,self.course))
  38.  
  39. def teach(self):
  40. print("%s is teaching course[%s]" %(self.name,self.course))
  41.  
  42. class Student(SchoolMember):
  43. def __init__(self,name,age,sex,stu_id,grade):
  44. super(Student,self).__init__(name,age,sex)
  45. self.stu_id = stu_id
  46. self.grade = grade
  47. def tell(self):
  48. print('''
  49. ------info of Student : %s----
  50. Name :%s
  51. Age :%s
  52. Sex :%s
  53. Stu_id :%s
  54. Grade :%s
  55. ''' % (self.name, self.name, self.age, self.sex, self.stu_id, self.grade))
  56. def pay_tuition(self,amount):
  57. print("%s has paid tution for $%s" %(self.name,amount))
  58.  
  59. school = School("天字一号","外太空")
  60.  
  61. t1 = Teacher("xiaolaizi",20,"m",20000,"english")
  62. t2 = Teacher("zhangsan",18,"m",200,"chinese")
  63.  
  64. s1 = Student("lisi",10,"f",110119,"python")
  65. s2 = Student("wangmaiz",8,"f",110118,"C++")
  66.  
  67. t1.tell()
  68. s1.tell()
  69. school.hire(t1)
  70. school.enroll(s1)
  71.  
  72. print(school.students)
  73. print(school.staffs)
  74. school.staffs[0].teach()
  75.  
  76. for stu in school.students:
  77. stu.pay_tuition(3000)

python------面向对象介绍之经典类与新式类的继承顺序的更多相关文章

  1. python 之 面向对象基础(继承与派生,经典类与新式类)

    7.2 继承与派生 7.21继承 1.什么是继承? 继承是一种新建类的的方式,在python中支持一个子类继承多个父类.新建的类称为子类或者派生类,父类又可以称为基类或者超类,子类会”遗传“父类的属性 ...

  2. Python 经典类和新式类

    #!/usr/bin/env python# -*- coding:utf-8 -*-# 作者:Presley# 邮箱:1209989516@qq.com# 时间:2018-10-21# 新式类和经典 ...

  3. python中的__new__与__init__,新式类和经典类(2.x)

    在python2.x中,从object继承得来的类称为新式类(如class A(object))不从object继承得来的类称为经典类(如class A()) 新式类跟经典类的差别主要是以下几点: 1 ...

  4. 二十三. Python基础(23)--经典类和新式类

    二十三. Python基础(23)--经典类和新式类 ●知识框架   ●接口类&抽象类的实现 # 接口类&抽象类的实现 #①抛出异常法 class Parent(object):    ...

  5. 【python】-- 类的多继承、经典类、新式类

    继承知识点补充 在python还支持多继承,但是一般我们很少用,有些语言干脆就不支持多继承,有多继承,就会带来两个概念,经典类和新式类. 一.多继承 之前我们都是讲的单继承,那么什么是多继承呢?说白了 ...

  6. python中经典类和新式类的区别

    要知道经典类和新式类的区别,首先要掌握类的继承.类的继承的一个优点就是减少代码,而且使代码看起来结构很完整. 那什么是经典类,什么是新式类呢? 经典类和新式类的主要区别就是类的继承的方式 ,经典类遵循 ...

  7. Python【经典类与新式类】

    经典类多继承的调用方法顺序是:深度优先查询,如下图:   新式类多继承的调用方法顺序是:广度优先查询,如下图:   可以使用下面的代码进行实验验证: #经典类class A: def __init__ ...

  8. python基础--类的经典类vs新式类

    经典类VS新式类区别 1)写法新式类class Person(object):#new style 经典类class Persion: #classical style 2)调用父类 新式写法用sup ...

  9. python学习笔记(二十六)经典类和新式类的区别

    首先了解一下什么是经典类,什么是新式类 class Person: #经典类 pass class Person2(object): #新式类 pass #类名首字母都大写 #在python3里面经典 ...

随机推荐

  1. TNS

    Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器 ORACLE当中,如果想访问某 ...

  2. Gameobject.Find和Transform.Find应用区别

    using UnityEngine;using System.Collections; public class test : MonoBehaviour{ private GameObject ro ...

  3. Mysql 实列结构-进程

    一.MySQL后台进程简介 master thread与四大I/O线程:read thread.write thread.redo log thread.change buffer thread与 p ...

  4. C++基础知识:操作符重载

    1.C++标准库: C++标准库并不是C++语言的一部分C++标准库是由C++语言编写而成的类库和函数的集合C++标准库中定义的类和对象都位于std命名空间中C++标准库的头文件都不带.h后缀C++标 ...

  5. 玩转 React 【第03期】:邂逅 React 组件

    上期回顾 前文我们讲解了 React 模板 JSX,接着我们继续来看看 React 组件又是如何工作的呢? 组件化开发到了今天已经是大家的共识,在 React 中,组件同样也是组成我们整个项目的基本单 ...

  6. Python 基础关于编码

    一.编码的种类: 1 acsic码   基本不用    不同编码之间互用会产生乱码, 2unicode    A 字母  4个字节   00000000 00000000 00100100 01000 ...

  7. python 正则进阶

    1.group 除了简单地判断是否匹配之外,正则表达式还有提取子串的强大功能.用()表示的就是要提取的分组(Group).比如:^(\d{3})-(\d{3,8})$分别定义了两个组,可以直接从匹配的 ...

  8. 爬虫系列1:python简易爬虫分析

    决定写一个小的爬虫系列,本文是第一篇,讲爬虫的基本原理和简易示例. 1.单个网页的简易爬虫 以下爬虫的主要功能是爬取百度贴吧中某一页面的所有图片.代码由主要有两个函数:其中getHtml()通过页面u ...

  9. python 1-10考试

  10. POJ 2234 Matches Game(Nim博弈裸题)

    Description Here is a simple game. In this game, there are several piles of matches and two players. ...