发布于 2017-07-03 02:35:06 | 88 次阅读 | 评论: 0 | 来源: 网友投递
Python编程语言
Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
一、 什么是多态
<1>一种类型具有多种类型的能力
<2>允许不同的对象对同一消息做出灵活的反应
<3>以一种通用的方式对待个使用的对象
<4>非动态语言必须通过继承和接口的方式来实现
二、 python中的多态
<1>通过继承实现多态(子类可以作为父类来使用)
<2>子类通过重载父类的方法实现多态
class Animal:
def move(self):
print('animal is moving....')
class Dog(Animal):
pass
def move(obj):
obj.move()
>>>move(Animal())
>>>animal is moving....
>>>move(Dog())
>>>animal is moving....
class Fish(Animal):
def move(self):
print('fish is moving....')
>>>move(Fish())
>>>fish is moving....
三、 动态语言和鸭子类型
<1>变量绑定的类型是不确定的
<2>函数和方法可以接收任何类型的参数
<3>调用方法时不检查提供的参数类型
<4>调用是否成功有参数的方法和属性确定,调用不成功则抛出错误
<5>不用实现接口
class P:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, oth):
return P(self.x+oth.x, self.y+oth.y)
def info(self):
print(self.x, self.y)
class D(P):
def __init__(self, x, y, z):
super.__init__(x, y)
self.z = z
def __add__(self, oth):
return D(self.x+oth.x, self.y+oth.y, self.z+oth.z)
def info(self):
print(self.x, self.y, self.z)
class F:
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
def __add__(self, oth):
return D(self.x+oth.x, self.y+oth.y, self.z+oth.z)
def info(self):
print(self.x, self.y, self.z)
def add(a, b):
return a + b
if __name__ == '__main__':
add(p(1, 2), p(3, 4).info())
add(D(1, 2, 3), D(1, 2, 3).info())
add(F(2, 3, 4), D(2, 3, 4).info())
四、 多态的好处
<1>可实现开放的扩展和修改的封闭
<2>使python程序更加的灵活
以上这篇老生常谈python之鸭子类和多态就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持PHPERZ。