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实现socket客户端和服务端简单示例
Feb 24 Python
Python3中类、模块、错误与异常、文件的简易教程
Nov 20 Python
Python iter()函数用法实例分析
Mar 17 Python
Python实现将json文件中向量写入Excel的方法
Mar 26 Python
Django 简单实现分页与搜索功能的示例代码
Nov 07 Python
Python tkinter和exe打包的方法
Feb 05 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
Jun 18 Python
Python存储读取HDF5文件代码解析
Nov 25 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 01 Python
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
May 14 Python
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
May 22 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验证是否是md5编码的简单代码
2014/04/01 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
网上抓的一个特效
2007/05/11 Javascript
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
vue axios请求成功却进入catch的原因分析
2020/09/08 Javascript
Python实现股市信息下载的方法
2015/06/15 Python
基于Python实现文件大小输出
2016/01/11 Python
matplotlib.pyplot绘图显示控制方法
2019/01/15 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
比较一下entity bean和session bean
2013/12/27 面试题
工地安全标语
2014/06/07 职场文书
学生会个人总结范文
2015/02/15 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
关于保护环境的建议书
2019/06/24 职场文书
Python制作春联的示例代码
2022/01/22 Python
最新最全的手机号验证正则表达式
2022/02/24 Javascript