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


Posted in Python onMay 10, 2018

本文实例讲述了Python中的单继承与多继承。分享给大家供大家参考,具体如下:

单继承

一、介绍

Python 同样支持类的继承,如果一种语言不支持继承,类就没有什么意义。派生类的定义如下所示:

class DerivedClassName(BaseClassName1):
  <statement-1>
  .
  .
  .
  <statement-N>

需要注意圆括号中基类的顺序,若是基类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找基类中是否包含方法。

BaseClassName(示例中的基类名)必须与派生类定义在一个作用域内。
除了类,还可以用表达式,基类定义在另一个模块中时这一点非常有用:

class DerivedClassName(modname.BaseClassName):

二、代码

# -*- coding:utf-8 -*-
#! python3
class people:
  #定义基本属性
  name =''
  age =0
  #定义私有属性,私有属性在类外部无法直接进行访问
  __weight =0
  #定义构造方法
  def __init__(self,n,a,w):
    self.name = n
    self.age = a
    self.__weight = w
  def speak(self):
    print("%s 说: 我 %d 岁。"%(self.name,self.age))
    #单继承示例
class student(people):
  grade =''
  def __init__(self,n,a,w,g):
    #调用父类的构造函数,下面两种方式都可以
    #people.__init__(self,n,a,w)
    super().__init__(n,a,w)
    self.grade = g
    #覆写父类的方法
  def speak(self):
    print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))
s = student('ken',10,60,3)
s.speak()

三、运行结果

ken 说: 我 10 岁了,我在读 3 年级

多继承

一、介绍

Python同样有限的支持多继承形式。多继承的类定义形如下例:

class DerivedClassName(Base1, Base2, Base3):
  <statement-1>
  .
  .
  .
  <statement-N>

需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找父类中是否包含方法。

二、代码

# -*- coding:utf-8 -*-
#! python3
#类定义
class people:
  #定义基本属性
  name =''
  age =0
  #定义私有属性,私有属性在类外部无法直接进行访问
  __weight =0
  #定义构造方法
  def __init__(self,n,a,w):
    self.name = n
    self.age = a
    self.__weight = w
  def speak(self):
    print("%s 说: 我 %d 岁。"%(self.name,self.age))
#单继承示例
class student(people):
  grade =''
  def __init__(self,n,a,w,g):
    #调用父类的构函
    people.__init__(self,n,a,w)
    self.grade = g
  #覆写父类的方法
  def speak(self):
    print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))
#另一个类,多重继承之前的准备
class speaker():
  topic =''
  name =''
  def __init__(self,n,t):
    self.name = n
    self.topic = t
  def speak(self):
    print("我叫 %s,我是一个演说家,我演讲的主题是 %s"%(self.name,self.topic))
#多重继承
class sample(speaker,student):
  a =''
  def __init__(self,n,a,w,g,t):
    student.__init__(self,n,a,w,g)
    speaker.__init__(self,n,t)
test = sample("Tim",25,80,4,"Python")
test.speak()#方法名同,默认调用的是在括号中排前地父类的方法

三、运行结果

我叫 Tim,我是一个演说家,我演讲的主题是 Python

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
解析Python中的异常处理
Apr 28 Python
Python实现二叉搜索树
Feb 03 Python
Python 中迭代器与生成器实例详解
Mar 29 Python
Python实现对象转换为xml的方法示例
Jun 08 Python
Python实现mysql数据库更新表数据接口的功能
Nov 19 Python
Sanic框架安装与简单入门示例
Jul 16 Python
Python实现常见的回文字符串算法
Nov 14 Python
Python多进程写入同一文件的方法
Jan 14 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
python实现简单的购物程序代码实例
Mar 03 Python
Python-split()函数实例用法讲解
Dec 18 Python
详解Python中下划线的5种含义
Jul 15 Python
python3处理含有中文的url方法
May 10 #Python
Python异常处理操作实例详解
May 10 #Python
解决python3 网络请求路径包含中文的问题
May 10 #Python
Python之文字转图片方法
May 10 #Python
Python实现查看系统启动项功能示例
May 10 #Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
May 10 #Python
Python实现修改IE注册表功能示例
May 10 #Python
You might like
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
使用PHP Socket写的POP3类
2013/10/30 PHP
php mail to 配置详解
2014/01/16 PHP
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
实习求职信
2013/12/01 职场文书
公司业务员岗位职责
2014/03/18 职场文书
研发工程师岗位职责
2014/04/28 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
开幕式邀请函
2015/01/31 职场文书
走近毛泽东观后感
2015/06/04 职场文书
靠谱的活动总结
2019/04/16 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书
六年级作文之自救
2019/12/19 职场文书