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 相关文章推荐
利用QT写一个极简单的图形化Python闹钟程序
Apr 07 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
Jun 20 Python
python将.ppm格式图片转换成.jpg格式文件的方法
Oct 27 Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 Python
对Python定时任务的启动和停止方法详解
Feb 19 Python
python面向对象法实现图书管理系统
Apr 19 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
Aug 17 Python
在Django下创建项目以及设置settings.py教程
Dec 03 Python
详解Python 重学requests发起请求的基本方式
Feb 07 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 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+MSSQL分页的例子
2006/10/09 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
php实现微信扫码支付
2017/03/26 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
php微信公众号开发之二级菜单
2018/10/20 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
Js基础学习资料
2010/11/23 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
javascript实用方法总结
2015/02/06 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
js实现动态时钟
2020/03/12 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
2020/09/08 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
详解Django中Request对象的相关用法
2015/07/17 Python
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
利用python爬取有道词典的方法
2020/12/08 Python
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
大学生第一学年自我鉴定
2014/09/12 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
上学路上观后感
2015/06/16 职场文书
运动会主持人开幕词
2016/03/04 职场文书
股权投资协议书
2016/03/23 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript