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网页请求urllib2模块简单封装代码
Feb 07 Python
Python cx_freeze打包工具处理问题思路及解决办法
Feb 13 Python
Python设计模式之命令模式简单示例
Jan 10 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
基于DataFrame筛选数据与loc的用法详解
May 18 Python
Python实现的tcp端口检测操作示例
Jul 24 Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 Python
解决tensorflow添加ptb库的问题
Feb 10 Python
40行Python代码实现天气预报和每日鸡汤推送功能
Feb 27 Python
Python IDE环境之 新版Pycharm安装详细教程
Mar 05 Python
python获取响应某个字段值的3种实现方法
Apr 30 Python
Python能做什么
Jun 02 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,不用COM,生成excel文件
2006/10/09 PHP
杏林同学录(四)
2006/10/09 PHP
如何将数据从文本导入到mysql
2006/10/09 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
PHP生成唯一订单号
2015/07/05 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
PHP自定义函数实现格式化秒的方法
2016/09/14 PHP
JS request函数 用来获取url参数
2010/05/17 Javascript
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
简单时间提示DEMO从0开始一直进行计时
2013/11/19 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
Python中的面向对象编程详解(下)
2015/04/13 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
pygame实现贪吃蛇游戏(下)
2019/10/29 Python
浅析python标准库中的glob
2020/03/13 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
Python是如何进行类型转换的
2013/06/09 面试题
学习心得体会
2014/01/01 职场文书
护理职业生涯规划书
2014/01/24 职场文书
小区文明倡议书
2014/05/16 职场文书
群众路线个人整改措施
2014/10/24 职场文书
小学生通知书评语
2014/12/31 职场文书