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中的reduce内建函数使用方法指南
Aug 31 Python
Python实现计算最小编辑距离
Mar 17 Python
Python实现读取并保存文件的类
May 11 Python
python 表达式和语句及for、while循环练习实例
Jul 07 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
python 删除指定时间间隔之前的文件实例
Apr 24 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 Python
Python re 模块findall() 函数返回值展现方式解析
Aug 09 Python
pytorch之Resize()函数具体使用详解
Feb 27 Python
Python 字典中的所有方法及用法
Jun 10 Python
python上下文管理器异常问题解决方法
Feb 07 Python
pytorch 使用半精度模型部署的操作
May 24 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文件中是否含有bom的函数
2012/05/31 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
Laravel下生成验证码的类
2017/11/15 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
微博@符号的用户名提示效果。(想@到谁?)
2010/11/05 Javascript
读jQuery之十一 添加事件核心方法
2011/07/31 Javascript
js 高效去除数组重复元素示例代码
2013/12/19 Javascript
解决checkbox的attr(checked)一直为undefined问题
2014/06/16 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
Vue中自定义全局组件的实现方法
2017/12/08 Javascript
js数组方法reduce经典用法代码分享
2018/01/07 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
单链表反转python实现代码示例
2018/02/08 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
大班下学期个人总结
2015/02/13 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
个人收入证明范本
2015/06/12 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
使用Django实现商城验证码模块的方法
2021/06/01 Python
python中%格式表达式实例用法
2021/06/18 Python