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发送邮件的实例代码(支持html、图片、附件)
Mar 04 Python
Python使用SocketServer模块编写基本服务器程序的教程
Jul 12 Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 Python
python中subprocess批量执行linux命令
Apr 27 Python
python使用numpy读取、保存txt数据的实例
Oct 14 Python
python中对数据进行各种排序的方法
Jul 02 Python
Python脚本利用adb进行手机控制的方法
Jul 08 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
tensorflow之读取jpg图像长和宽实例
Jun 18 Python
python自动从arxiv下载paper的示例代码
Dec 05 Python
python中四舍五入的正确打开方式
Jan 18 Python
python编写函数注意事项总结
Mar 29 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中的三元运算符使用说明
2011/07/03 PHP
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
如何打开php的gd2库
2017/02/09 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
prototype 学习笔记整理
2009/07/17 Javascript
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
python在命令行下使用google翻译(带语音)
2014/01/16 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
python 深度学习中的4种激活函数
2020/09/18 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
物理分数没达标检讨书
2014/09/13 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
推广普通话的宣传语
2015/07/13 职场文书
施工现场安全管理制度
2015/08/05 职场文书
中国文明网2015年“向国旗敬礼”活动网上签名寄语
2015/09/24 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
Python爬虫基础讲解之请求
2021/05/13 Python
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python