多态指的是一样事物有多种表现形态。(自定义函数中的参数类型,不用在建立函数时就定义)
多态性是指在不考虑实例类型的情况下使用实例。
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__,所以对类型的要求不高