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的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
Jul 09 Python
使用Python求解最大公约数的实现方法
Aug 20 Python
使用Python对SQLite数据库操作
Apr 06 Python
Python中定时任务框架APScheduler的快速入门指南
Jul 06 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
Python配置虚拟环境图文步骤
May 20 Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 Python
python识别图像并提取文字的实现方法
Jun 28 Python
Python如何在单元测试中给对象打补丁
Aug 03 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
Sep 29 Python
python读取mnist数据集方法案例详解
Sep 04 Python
Python Matplotlib绘制等高线图与渐变色扇形图
Apr 14 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
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
JavaScript之引用类型介绍
2012/08/10 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
微信分享invalid signature签名错误踩过的坑
2020/04/11 Javascript
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
Python描述器descriptor详解
2015/02/03 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
python取余运算符知识点详解
2019/06/27 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
python文件编写好后如何实践
2020/07/07 Python
Pycharm Git 设置方法
2020/09/15 Python
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
土耳其时尚购物网站:Morhipo
2017/09/04 全球购物
校园网站的创业计划书范文
2013/12/30 职场文书
医院实习介绍信
2014/01/12 职场文书
小学生评语集锦
2014/04/18 职场文书
大学学雷锋活动总结
2014/06/26 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
孔子观后感
2015/06/08 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL
Python利用FlashText算法实现替换字符串
2022/03/31 Python