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单元测试unittest的使用示例
Nov 18 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
Sep 03 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
将自己的数据集制作成TFRecord格式教程
Feb 17 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
python文件读取失败怎么处理
Jun 23 Python
Python基于xlrd模块处理合并单元格
Jul 28 Python
Python3获取cookie常用三种方案
Oct 05 Python
python中opencv实现图片文本倾斜校正
Jun 11 Python
详解PyTorch模型保存与加载
Apr 28 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
Python获取系统默认字符编码的方法
2015/06/04 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
python基于phantomjs实现导入图片
2016/05/13 Python
基础的十进制按位运算总结与在Python中的计算示例
2016/06/28 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
Python装饰器简单用法实例小结
2018/12/03 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
PyTorch安装与基本使用详解
2020/08/31 Python
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
护理个人求职信范文
2014/01/08 职场文书
银行服务感言
2014/03/01 职场文书
幼儿园教师节感谢信
2015/01/23 职场文书
2016年母亲节广告语
2016/01/28 职场文书
用python修改excel表某一列内容的操作方法
2021/06/11 Python
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis