Python编程之多态用法实例详解


Posted in Python onMay 19, 2015

本文实例讲述了Python编程之多态用法。分享给大家供大家参考。具体分析如下:

什么是多态?顾名思义,多态就是多种表现形态的意思。它是一种机制、一种能力,而非某个关键字。它在类的继承中得以实现,在类的方法调用中得以体现。多态意味着变量并不知道引用的对象是什么,根据引用对象的不同表现不同的行为方式。

我们先看一个简单的例子,运算符多态:

a=34
b=57
print(a+b)
a="世界"
b="你好"
print(a+b)

我们不知道+法运算符左右两个变量是什么类型,当我们给的是int类型时,它就进行加法运算。当我们给的是字符串类型时,它就返回的是两个字符串拼接的结果。也就是根据变量类型的不同,表现不能的形态。

我们再来看一个例子,方法多态:

我们首先创建一个名为MyClass.py的文件,代码如下

__author__= 'MXi4oyu'
classPeople:
  def say(self):
    print("大家好!")
classStudent:
  def say(self):
    print("老师好!")

我们再创建一个Main.py的文件,代码如下:

__author__= 'MXi4oyu'
fromrandom import choice
importMyClass
p1=MyClass.People()
stu1=MyClass.Student()
#通过choice方法我们可以随机选择列表中的某一项
obj=choice([p1,stu1]) 
print(type(obj))
obj.say()

我们创建的临时对象obj是由随机函数取出来的,我们不知道它的具体类型,但是我们可以对它进行相同的操作。即让它调用say方法,然后根据其类型的不同,它所表现的行为不同。这就是多态。

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

Python 相关文章推荐
Python单链表简单实现代码
Apr 27 Python
Python算法之求n个节点不同二叉树个数
Oct 27 Python
Python中函数参数调用方式分析
Aug 09 Python
详解如何将python3.6软件的py文件打包成exe程序
Oct 09 Python
pandas通过索引进行排序的示例
Nov 16 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
Apr 26 Python
python实现数据清洗(缺失值与异常值处理)
Dec 02 Python
浅谈Python访问MySQL的正确姿势
Jan 07 Python
Jupyter notebook如何实现指定浏览器打开
May 13 Python
Python3爬虫里关于代理的设置总结
Jul 30 Python
python ssh 执行shell命令的示例
Sep 29 Python
Python 解决空列表.append() 输出为None的问题
May 23 Python
Python编程之属性和方法实例详解
May 19 #Python
python实现提取百度搜索结果的方法
May 19 #Python
在Python中操作字符串之rstrip()方法的使用
May 19 #Python
Python映射拆分操作符用法实例
May 19 #Python
Python中的rjust()方法使用详解
May 19 #Python
python抓取百度首页的方法
May 19 #Python
Python递归遍历列表及输出的实现方法
May 19 #Python
You might like
PHP如何解决网站大流量与高并发的问题
2011/06/25 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
JSON为什么那样红为什么要用json(另有洞天)
2012/12/26 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
iscroll实现下拉刷新功能
2017/07/18 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
js实现多图和单图上传显示
2019/12/18 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
Python的多维空数组赋值方法
2018/04/13 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
2018/04/23 Python
Python中的TCP socket写法示例
2018/05/11 Python
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
新闻专业应届生求职信
2013/10/31 职场文书
2014年社区重阳节活动策划方案
2014/09/16 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
岁月神偷观后感
2015/06/11 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android