多态的概念其实不难理解,它是指对不同类型的变量进行相同的操作,它会根据对象(或类)类型的不同而表现出不同的行为。

事实上,我们经常用到多态的性质,比如:>>> 1   2

3

>>> 'a'   'b'

'ab'

可以看到,我们对两个整数进行   操作,会返回它们的和,对两个字符进行相同的   操作,会返回拼接后的字符串。也就是说,不同类型的对象对同一消息会作出不同的响应。

相关推荐:《Python视频教程》

再看看类的例子:class Animal(object):

def __init__(self, name):

self.name = name

def greet(self):

print 'Hello, I am %s.' % self.name

class Dog(Animal):

def greet(self):

print 'WangWang.., I am %s.' % self.name

class Cat(Animal):

def greet(self):

print 'MiaoMiao.., I am %s' % self.name

def hello(animal):

animal.greet()

看看多态的使用:>>> dog = Dog('dog')

>>> hello(dog)

WangWang.., I am dog.

>>>>>> cat = Cat('cat')

>>> hello(cat)

MiaoMiao.., I am cat

可以看到,cat 和 dog 是两个不同的对象,对它们调用 greet 方法,它们会自动调用实际类型的 greet 方法,作出不同的响应。这就是多态的魅力。

相关推荐:

Python中类的继承是什么

您可能感兴趣的文章:

python什么是多态_Python中的多态是什么相关推荐

  1. python 多态_Python中的多态

    面向对象的语言有四个特性,抽象.封装.继承和多态.在之前的文章中,给小伙伴们已经讲解了前三个.为什么要把多态放在最后一个讲呢?因为前面的三个特性是多态的基础,了解了前三个,了解多态就很容易啦~ 那么, ...

  2. python算法和数据结构_Python中的数据结构和算法

    python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...

  3. python中的多态是什么_Python中的多态

    python中的多态是什么 Polymorphism is a concept of Object Oriented Programming, which means multiple forms o ...

  4. java中的多态_Java中的多态

    多态与HoFs 朋友们好久不见啊,最近笔者同时在写脚本型语言--JavaScript,和工业级的面向对象语言--Java. 在写代码的同时呢,也会思考这些语言的不同.今天就拿 Java 中的多态,来谈 ...

  5. python决策树 多分类_Python中的决策树分类:您需要了解的一切

    python决策树 多分类 什么是决策树? (What is Decision Tree?) A decision tree is a decision support tool that uses ...

  6. python基础知识测试题_Python中的单元测试—基础知识

    python基础知识测试题 Unit testing is the number one skill which separates people who just finished their de ...

  7. python数据库模糊查询_python中数据库like模糊查询方式

    python中数据库like模糊查询方式 在Python中%是一个格式化字符,所以如果需要使用%则需要写成%%. 将在Python中执行的sql语句改为: sql = "SELECT * F ...

  8. python redis 消息队列_python中利用redis构建任务队列(queue)

    Python中的使用标准queue模块就可以建立多进程使用的队列,但是使用redis和redis-queue(rq)模块使这一操作更加简单. Part 1. 比如首先我们使用队列来简单的储存数据:我们 ...

  9. python怎么清理垃圾_Python 中的“垃圾”是怎么回收的?

    前言 对于python来说,一切皆为对象,所有的变量赋值都遵循着对象引用机制.程序在运行的时候,需要在内存中开辟出一块空间,用于存放运行时产生的临时变量:计算完成后,再将结果输出到永久性存储器中.如果 ...

最新文章

  1. mybatis处理查询map列表属性为null的问题,而导致查询map无该key对象
  2. MongoDB 入门篇
  3. 何佳文(帮别人名字作诗)
  4. C++中? : 运算符的使用
  5. 做游戏美术师必须掌握哪些基本知识
  6. Thanos 开源的大规模Prometheus集群解决方案
  7. C++使用boost::bind 订阅消息中的返回函数传入多个参数
  8. 考验你的吉他入门了吗?
  9. 融云 即时通讯 集成相关问题
  10. 一个简单的网页版钢琴(用到JQuery)
  11. 生产环境CPU占用飙高问题解决
  12. 数据分析常见SQL面试笔试题
  13. SpringBoot并发压测工具ContiPerf
  14. Factory Method vs Abstract Factory
  15. 数据科学系列:plotly可视化入门介绍
  16. sql执行出现 Unknown Column ‘nmae‘ in ‘IN/ALL/ANY subquery‘相关报错信息解决
  17. VSCode 保存时 ESLint 一键修复
  18. 九年级计算机教学计划,实用的九年级教学计划四篇
  19. Win10优化大师1.0 Beta 5发布,跟上微软的节奏
  20. hdu6055—Regular polygon(正方形的判定)

热门文章

  1. 非标准USBasp下载线烧录Arduino BootLoader的参数设置
  2. 都说程序员显老,但这位阿里码农观点截然相反,貌似还很有道理!
  3. 普里姆算法(Prim)
  4. 中鑫吉鼎|存不到钱的年轻人,你想过为什么吗?
  5. jenkins Exec exit status not zero. Status [127] ,126,125解决方法
  6. 加密解密,,加签验签
  7. HTML5 PC端框架
  8. Docker Swarm 之节点标签
  9. 图像加密之灰度加密:基于 密钥 × 解钥 ≡ 1 mod 灰度级 的一轮加密算法原理和步骤
  10. 春招笔试|寒气华5.6笔试三道题