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获取豆瓣电影简介代码分享
Jan 16 Python
使用python装饰器验证配置文件示例
Feb 24 Python
Python使用sort和class实现的多级排序功能示例
Aug 15 Python
Python根据欧拉角求旋转矩阵的实例
Jan 28 Python
详解PyTorch手写数字识别(MNIST数据集)
Aug 16 Python
Python实现不规则图形填充的思路
Feb 02 Python
python实现简单的购物程序代码实例
Mar 03 Python
在python中实现求输出1-3+5-7+9-......101的和
Apr 02 Python
keras model.fit 解决validation_spilt=num 的问题
Jun 19 Python
Python趣味入门教程之循环语句while
Aug 26 Python
python代数式括号有效性检验示例代码
Oct 04 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
Dec 31 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语法速查表
2006/12/06 PHP
PHP使用数组实现队列
2012/02/05 PHP
php+highchats生成动态统计图
2014/05/21 PHP
PHP实现的曲线统计图表示例
2016/11/10 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
比较全的JS checkbox全选、取消全选、删除功能代码
2008/12/19 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
jQuery弹出div层过2秒自动消失
2016/11/29 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
微信小程序修改checkbox的样式代码实例
2020/01/21 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
Python实现查找系统盘中需要找的字符
2015/07/14 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
Python 实现随机数详解及实例代码
2017/04/15 Python
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
Python代码缩进和测试模块示例详解
2018/05/07 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
余弦相似性计算及python代码实现过程解析
2019/09/18 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
美国老牌主机服务商:iPage
2016/07/22 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
机修工工作职责
2014/02/21 职场文书
教师网络培训感言
2014/03/09 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
优秀共产党员推荐材料
2014/12/18 职场文书
我的法兰西岁月观后感
2015/06/09 职场文书
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android
Python开发五子棋小游戏
2022/04/28 Python