您的位置:首页 > 编程语言 > Python开发

笔记:python基础之面向对象特性——多态

2019-02-12 20:44 218 查看

多态指的是一样事物有多种表现形态。(自定义函数中的参数类型,不用在建立函数时就定义)
多态性是指在不考虑实例类型的情况下使用实例。
python 天生支持多态,没有生成多态的机制,是因为python天生支持多态。

def func(int num,str name):
pass
func('alex',2)

class Payment:pass

class Alipay():
def pay(self,money):
print('已经用支付宝支付了%s元' % money)
class Applepay():
def pay(self,money):
print('已经用applepay支付了%s元' % money)
def pay(pay_obj,money):  # 统一支付入口  归一化设计
pay_obj.pay(money)

pay()

什么是多态
python 动态强类型的语言(可以是强类型和弱类型)
鸭子类型——不依赖父类的情况下实现两个相似的类中的同名方法
list tuple

  • 不崇尚根据继承所得来的相似
  • 我只是自己实现我自己的代码就可以了。
  • 如果两个类刚好相似,并不产生父类的子类的兄弟关系,而是鸭子类型
  • list tuple 这种相似,是自己写代码的时候约束的,而不是通过父类约束的

优点 : 松耦合 每个相似的类之间都没有影响
缺点 : 太随意了,只能靠自觉

class List():
def __len__(self):pass
class Tuple():
def __len__(self):pass

def len(obj):
return obj.__len__()

l = Tuple()
len(l)
#不同类型中都有相同的自定义函数名称__len__,所以对类型的要求不高
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: