Python编程系列教程第15讲——多态
2013-09-09 10:30
281 查看
分享知识,分享快乐,收获友谊,收获财富!
大家好,我是数字雨,QQ:798033502
http://itbook.taobao.com/
今天给大家带来的教程是《Python编程系列教程第15讲——多态》
什么是多态?顾名思义,多态就是多种表现形态的意思。它是一种机制、一种能力,而非某个关键字。它在类的继承中得以实现,在类的方法调用中得以体现。多态意味着变量并不知道引用的对象是什么,根据引用对象的不同表现不同的行为方式。
我们先看一个简单的例子,运算符多态:
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方法,然后根据其类型的不同,它所表现的行为不同。这就是多态。
那么到这里呢,我们的课程就要先告一段落了。什么?没了?NO!NO!NO!这才刚刚开始。我们前15课都是讲的语法,我想大家更多的是想学习怎么开发一个像模像样的软件。那么今后的课程我将以实例的形式讲解。一起做项目,在项目中强化巩固和深入语言知识。
记住Python的编程哲学就是“简单至上”,可能还有一部分朋友暂时不能完全消化面向对象的封装、继承和多态。不过没关系,看完本节课程后,睡觉之前自己再好好回顾下这1-15讲。等第二天醒来,不管你前15讲有没有消化掉,先把它们扔到一边,轻装上阵开始新的征程。
大家好,我是数字雨,QQ:798033502
http://itbook.taobao.com/
今天给大家带来的教程是《Python编程系列教程第15讲——多态》
什么是多态?顾名思义,多态就是多种表现形态的意思。它是一种机制、一种能力,而非某个关键字。它在类的继承中得以实现,在类的方法调用中得以体现。多态意味着变量并不知道引用的对象是什么,根据引用对象的不同表现不同的行为方式。
我们先看一个简单的例子,运算符多态:
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方法,然后根据其类型的不同,它所表现的行为不同。这就是多态。
那么到这里呢,我们的课程就要先告一段落了。什么?没了?NO!NO!NO!这才刚刚开始。我们前15课都是讲的语法,我想大家更多的是想学习怎么开发一个像模像样的软件。那么今后的课程我将以实例的形式讲解。一起做项目,在项目中强化巩固和深入语言知识。
记住Python的编程哲学就是“简单至上”,可能还有一部分朋友暂时不能完全消化面向对象的封装、继承和多态。不过没关系,看完本节课程后,睡觉之前自己再好好回顾下这1-15讲。等第二天醒来,不管你前15讲有没有消化掉,先把它们扔到一边,轻装上阵开始新的征程。
相关文章推荐
- Python编程系列教程第13讲——隐藏数据和封装
- 云星数据---Scala实战系列(精品版)】:Scala入门教程022-Scala实战源码-Scala 多态01
- 新人补钙系列教程之:类,接口,多态,工厂方法
- Python编程系列教程第16讲——拷贝自身到系统目录
- 亿能测试视频教程 - QTP自动化测试视频系列(第15、16、17集)
- Python编程系列教程第14讲——继承
- Python编程系列教程第12讲——属性和方法
- angular入门系列教程4
- 树莓派开发系列教程7——树莓派做web服务器(nginx、Apache)
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十)向Silverlight移植②
- Java NIO系列教程(七) FileChannel
- [js高手之路] es6系列教程 - 对象功能扩展详解
- CSS3 经典教程系列:CSS3 径向渐变(radial-gradient)
- 黄聪:如何使用CodeSmith批量生成代码(原创系列教程)
- 轻松掌握Ajax.net系列教程二:部署Ajax Control Toolkit
- Windows 8实例教程系列 - 自定义应用风格
- DIY固件系列教程——实现开机LOGO三屏动画的完全替换
- Swift新手教程系列5-函数+selector在swift中的使用方法
- 一起学习CC3200系列教程之PWM模式