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发送邮件的实例代码(支持html、图片、附件)
Mar 04 Python
python通过装饰器检查函数参数数据类型的方法
Mar 13 Python
Python 绘图和可视化详细介绍
Feb 11 Python
python 堆和优先队列的使用详解
Mar 05 Python
实例详解Matlab 与 Python 的区别
Apr 26 Python
win8.1安装Python 2.7版环境图文详解
Jul 01 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
python解析命令行参数的三种方法详解
Nov 29 Python
pytorch使用horovod多gpu训练的实现
Sep 09 Python
python 调用API接口 获取和解析 Json数据
Sep 28 Python
Python数据分析之绘图和可视化详解
Jun 02 Python
Python 装饰器(decorator)常用的创建方式及解析
Apr 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
屏蔽浏览器缓存另类方法
2006/10/09 PHP
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
让PHP更快的提供文件下载的代码
2012/06/13 PHP
php生成excel列序号代码实例
2013/12/24 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
php简单图像创建入门实例
2015/06/10 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
js的延迟执行问题分析
2014/06/23 Javascript
AngularJS语法详解
2015/01/23 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
浅谈vue加载优化策略
2019/03/19 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
详解vue 组件注册
2020/11/20 Vue.js
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
python自动zip压缩目录的方法
2015/06/28 Python
深入解析Python中的集合类型操作符
2015/08/19 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
Python中有几个关键字
2020/06/04 Python
Python计算信息熵实例
2020/06/18 Python
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
可靠的数据流传输TCP
2016/03/15 面试题
高中政治教学反思
2014/01/18 职场文书
500字小学生检讨书
2015/02/19 职场文书
大学生自荐书范文
2015/03/05 职场文书
基于angular实现树形二级表格
2021/10/16 Javascript