Python面向对象之鸭子类型

python没有多态?他有什么? 他有鸭子类型.
鸭子类型 : 看着像鸭子,他就是鸭子.

比如一些类,他们中有一些方法,有着相同的功能,
这时为我们将这些相同功能的名字命名为一样的。
那么这些类 都互称为鸭子.

class Str:
    def index(self):
        pass

class List:
    def index(self):
        pass

class Tuple:
    def index(self):
        pass

 python为弱类型语言,处处是多态。

原文地址:https://www.cnblogs.com/xiao-xue-di/p/9372061.html

时间: 2024-11-05 23:24:36

Python面向对象之鸭子类型的相关文章

python语言的鸭子类型和强类型语言的多态

前面讲接口类的时候举过一个有关支付方式的例子,支付方式可以有几种,微信支付,支付宝支付,苹果支付等,这几个不同的支付都统一于支付,像这样几个类都统一于 某一个类或者某一个方法,或者说一个类有不同的形态的情况就属于多态:虽然几种支付方式都归一于支付类,执行的方法一样,但是每一个支付方式都有自己的特性,实现的 形态也不一样,即为多态性. class Payment: # 必要的父类 def pay(self,money): pass class Wechatpay(Payment): # 子类继承父

python多态和鸭子类型

多态 多态是同一个行为对于不同的对象具有多个不同表现形式或形态的能力. 多态性是对象多种表现形式的体现. 比如 我们按下 F1 键这个动作: 如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档: 如果当前在 Word 下弹出的就是 Word 帮助: 在 Windows 下弹出的就是 Windows 帮助和支持. 同一个事件发生在不同的对象上会产生不同的结果. 文件有多种形态:文本文件,可执行文件 import abc # 抽象类 class File(metaclass=abc.AB

python与鸭子类型

部分参考来源:作者:JasonDing  https://www.jianshu.com/p/650485b78d11##s1 首先介绍下面向对象(OOP)的三大特征: (1)面向对象程序设计有三大特征:封装(Encapsulation).继承(Inheritance).多态(Polymorphism).这三个单词很常见,大家还是记住为好! (2)封装(Encapsulation):类包含了数据和方法,将数据和方法放在一个类中就构成了封装. (3)继承(Inheritance):Java是单继承

duck type鸭子类型

在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格.在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定.这个概念的名字来源于由James Whitcomb Riley提出的鸭子测试(见下面的"历史"章节),"鸭子测试"可以这样表述: "当看到一只鸟走起来像鸭子.游泳起来像鸭子.叫起来也像鸭子,那么这只鸟就可以被称为鸭子."[1][2] 在鸭子类型中,关注的不是对象的类型本

python面向对象之三大特性

继承 先看个简单的例子了解一下继承. class Animal: # 父类 def __init__(self, name, age, department): self.name = name self.age = age self.department = department def running(self): print('%s可以奔跑!'% self.name) class Cat(Animal): # 括号里放要继承的父类 def __init__(self, name, age,

Python面向对象特性 - 多态

Python中的多态 多态 多态指的是一类事物有多种形态.多态的实现需要依赖于继承~ import abc class File(metaclass=abc.ABCMeta): @abc.abstractmethod def read(self): pass @abc.abstractmethod def write(self): pass class Txt(File): # 文本数据的读写 def read(self): print('读取文本数据') def write(self): pr

09-04 多态性与鸭子类型

多态与多态性 多态指的是一类事物有多种形态,比如动物有多种形态:猫.狗.猪 class Animal: #同一类事物:动物 def talk(self): pass class Cat(Animal): #动物的形态之一:猫 def talk(self): print('喵喵喵') class Dog(Animal): #动物的形态之二:狗 def talk(self): print('汪汪汪') class Pig(Animal): #动物的形态之三:猪 def talk(self): pri

Python:面向对象的“开闭原则”和“鸭子类型”

开闭原则 开闭原则(OCP)是面向对象设计中"可复用设计"的基石,是面向对象设计中最重要的原则之一,其它很多的设计原则都是实现开闭原则的一种手段. 1988年,勃兰特·梅耶(Bertrand Meyer)在他的著作<面向对象软件构造(Object Oriented Software Construction)>中提出了开闭原则,它的原文是这样:"Software entities should be open for extension,but closed fo

python 鸭子类型

以前写过一篇文章讲了一下python中的多态,最后得出结论python不支持多态,随着对python理解得加深,对python中得多态又有了一些看法. 首先Python不支持多态,也不用支持多态,python是一种多态语言,崇尚鸭子类型.以下是维基百科中对鸭子类型得论述: 在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格.在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定.这个概念的名字来源于由James Whitco