1. 云栖社区>
  2. 技术文集>
  3. 列表>
  4. 正文

Python 多态

作者:用户 来源:互联网 时间:2018-11-11 19:39:10

字符串log调用errorcolErroNim是什么animal

Python 多态 - 摘要: 本文讲的是Python 多态, 类的多态     多态 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将

类的多态

 

 

多态

多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

那么,多态的作用是什么呢。我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用。多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。

 

Pyhon 很多语法都是支持多态的,比如 len(),sorted(), 你给len传字符串就返回字符串的长度,传列表就返回列表长度。

 

Python多态示例

class Animal(object):
    def __init__(self, name):  # Constructor of the class
        self.name = name

    def talk(self):              # Abstract method, defined by convention only
        raise NotImplementedError("Subclass must implement abstract method") #调用就会报错


class Cat(Animal):
    def talk(self):
        print(‘%s: 喵喵喵!‘ %self.name)


class Dog(Animal):
    def talk(self):
        print(‘%s: 汪。汪。汪。‘ %self.name)


a = Animal("Lichuang")
d = Dog("d1")
c = Cat("c1")



#一个接口,多种形态
def animal_talk(obj): 
    obj.talk()
animal_talk(c)
animal_talk(d)

 

Python 多态

标签:调用   是什么   字符串   nim   animal   log   error   erro   col   

原文地址:http://www.cnblogs.com/xiangsikai/p/7819434.html

以上是Python 多态的全部内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有Python 多态 的相关内容,欢迎继续使用右上角搜索按钮进行搜索字符串 , log , 调用 , error , col , Erro , Nim , 是什么 animal ,以便于您获取更多的相关知识。

java里的多态理解的模模糊糊的,到底什么是多态?多态和类是什么关系?和对象呢?

问题描述 java里的多态理解的模模糊糊的,到底什么是多态?多态和类是什么关系?和对象呢? java里的多态理解的模模糊糊的,到底什么是多态?多态和类是什么关系?和对象呢? ...

python学习手册中的python多态示例代码_python

在处理多态对象时,只需要关注它的接口即可,python中并不需要显示的编写(像Java一样)接口,在使用对象的使用先假定有该接口,如果实际并不包含,在运行中报错。 复制代码 代码如下: class handGun():    def __init__(self):  ...

PHP设计模式(五):多态

...利用interface的程序设计方法,那就是多态。和C/C++,Java,Python等语言一样,PHP也支持多态。多态更多是是一种面向对象程序设计的概念,让同一类对象执行同一个接口,但却实现不同的逻辑功能。 多态/Polymorphism还是用动物、鲸...

快速上手Gobject

...结时,可以很容易对应到许多语言,包括C++、Java、Ruby、Python和.NET/Mono等。GObject被设计为可以直接使用在 C程序中,也 封装至其他语言。 透明的跨语言互通性 —Gobject如何解决静态语言与动态语言的沟通问题。 —在pytho...

javascript 的面向对象特性参考

...有很大的不同。但是,都是动态语言,我还是觉得它比起python语法和库都差得太远。可是没有explorer支持python开发 啊。。。:( 这是我学习javascript中面向对象特性的一点总结。希望对具有其他语言的面向对象设计经验的朋友理...

前三篇
后三篇