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进阶教程之函数参数的多种传递方法
Aug 30 Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
May 24 Python
python2.7实现爬虫网页数据
May 25 Python
wxPython的安装与使用教程
Aug 31 Python
浅谈Python小波分析库Pywavelets的一点使用心得
Jul 09 Python
解决django 新增加用户信息出现错误的问题
Jul 28 Python
python读取Excel表格文件的方法
Sep 02 Python
使用python绘制cdf的多种实现方法
Feb 25 Python
django 模版关闭转义方式
May 14 Python
Python爬取12306车次信息代码详解
Aug 12 Python
python实现学生信息管理系统(精简版)
Nov 27 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
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
bootstrap table复杂操作代码
2016/11/01 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
d3.js实现图形拖拽
2019/12/19 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
vue 单页应用和多页应用的优劣
2020/10/22 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
Flask框架信号用法实例分析
2018/07/24 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
Python爬虫学习之翻译小程序
2019/07/30 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
今天学到的CSS最新技术(与图片背景相关)
2012/12/24 HTML / CSS
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
生日礼品店创业计划书范文
2014/03/21 职场文书
商业街策划方案
2014/05/31 职场文书
2014年化验员工作总结
2014/11/18 职场文书
消防安全培训工作总结
2015/10/23 职场文书
初二物理教学反思
2016/02/19 职场文书
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis