Python面向对象程序设计多继承和多态用法示例


Posted in Python onApril 08, 2019

本文实例讲述了Python面向对象程序设计多继承和多态用法。分享给大家供大家参考,具体如下:

多继承

就是一个子类继承多个父类:

Python面向对象程序设计多继承和多态用法示例

多继承的例子,如下:

# -*- coding:utf-8 -*-
#! python3
class Base(object):
  def test(self):
    print("------base")
class A(Base):
  def test1(self):
    print("-----test1")
class B(Base):
  def test2(self):
    print("----test2")
class C(A,B):
  pass
c=C()
c.test1()
c.test2()
c.test()

运行结果:

-----test1
----test2
------base

Python面向对象程序设计多继承和多态用法示例

C也能继承Base

注:多继承中,每个父类都有相同的方法,子类继承时,会有一个继承顺序

想要查看该顺序的调用流程可以使用以下方法:

最后调用的是object方法,如果object方法也不存在,说明类中没有这个方法

print(子类类名.__mro__)
# -*- coding:utf-8 -*-
#! python3
class Base(object):
  def test(self):
    print("-----Base")
class A(Base):
  def test(self):
    print("----A")
class B(Base):
  def test(self):
    print("----B")
class C(A,B):
  def test(self):
    print("-----C")
c=C()
c.test()

运行结果:

-----C

多态

什么是多态:

定义时的类型和运行时的类型不一样,也就是定义时并不确定要调用的是哪个方法,只有运行的时候才能确定调用的是哪个

# -*- coding:utf-8 -*-
#! python3
class Dog(object):
  def print_self(self):
    print("父类")
class Xiaotq(Dog):
  def print_self(self):
    print("子类")
def introduce(temp):
  temp.print_self()
dog1=Dog()
dog2=Xiaotq()
introduce(dog1)
introduce(dog2)

运行结果:

父类
子类

temp就是对象的引用,它和对象指向同一块空间

多态的作用:

在游戏中有多种类型的角色,要在玩家开始玩的时候才能选择,所以开始并不知道玩家选的什么角色,这就是多态

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

Python 相关文章推荐
在Python中操作文件之seek()方法的使用教程
May 24 Python
python+pyqt实现右下角弹出框
Oct 26 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
python ansible服务及剧本编写
Dec 29 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
我就是这样学习Python中的列表
Jun 02 Python
浅析Python3中的对象垃圾收集机制
Jun 06 Python
python 搜索大文件的实例代码
Jul 08 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
Jan 02 Python
python归并排序算法过程实例讲解
Nov 04 Python
Python并发爬虫常用实现方法解析
Nov 19 Python
python math模块的基本使用教程
Jan 16 Python
python仿抖音表白神器
Apr 08 #Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 #Python
分析经典Python开发工程师面试题
Apr 08 #Python
django celery redis使用具体实践
Apr 08 #Python
python制作抖音代码舞
Apr 07 #Python
python实现抖音点赞功能
Apr 07 #Python
将pip源更换到国内镜像的详细步骤
Apr 07 #Python
You might like
php读取msn上的用户信息类
2008/12/05 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
PHP大批量插入数据库的3种方法和速度对比
2014/07/08 PHP
thinkphp浏览历史功能实现方法
2014/10/29 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
vue router 通过路由来实现切换头部标题功能
2019/04/24 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
一步步教你用Python实现2048小游戏
2017/01/19 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
Python数据可视化图实现过程详解
2020/06/12 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
深入浅析css3 border-image边框图像详解
2015/11/24 HTML / CSS
html5 div布局与table布局详解
2016/11/16 HTML / CSS
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
电子信息工程专业推荐信
2014/02/14 职场文书
医学生求职自荐书
2014/06/12 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
教师群众路线心得体会
2014/11/04 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
2015年化验员工作总结
2015/04/10 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
公务员处分决定书
2015/06/25 职场文书
总经理聘用协议书
2015/09/21 职场文书
2016幼儿园毕业感言
2015/12/08 职场文书
廉政党课工作报告案例
2019/06/21 职场文书