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之引用和类属性的初步理解
May 15 Python
在Django中创建动态视图的教程
Jul 15 Python
使用python加密自己的密码
Aug 04 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 Python
Python类的继承用法示例
Jan 31 Python
Python面向对象程序设计类的多态用法详解
Apr 12 Python
python实现扫描ip地址的小程序
Apr 16 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
解决TensorFlow程序无限制占用GPU的方法
Jun 30 Python
Python在后台自动解压各种压缩文件的实现方法
Nov 10 Python
pytorch 中nn.Dropout的使用说明
May 20 Python
Python数据结构之队列详解
Mar 21 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/10/09 PHP
PHP生成带有雪花背景的验证码
2008/09/28 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
php实现的SESSION类
2014/12/02 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
PHP代码加密的方法总结
2020/03/13 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
理解JavaScript中的事件
2006/09/23 Javascript
js option删除代码集合
2008/11/12 Javascript
javascript获取所有同类checkbox选项(实例代码)
2013/11/07 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
Vue实现购物车详情页面的方法
2019/08/20 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
详解Python核心对象类型字符串
2018/02/11 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
python实现nao机器人身体躯干和腿部动作操作
2019/04/29 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
C#软件工程师英语面试题
2015/06/07 面试题
食品行业求职人的自我评价
2014/01/19 职场文书
安全资金保障制度
2014/01/23 职场文书
2014年社区庆元旦活动方案
2014/03/08 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
水电维修专业推荐信
2014/09/06 职场文书
正则表达式拆分url实例代码
2022/02/24 Java/Android