python多态的三种表现形式_python3 面对对象编程三大特性之一:多态

本文介绍了Python中的多态概念,通过代码示例展示了如何在字符串和列表上调用`__len__()`方法,以及通过继承实现不同子类对象调用`turn_ice()`方法时执行不同逻辑,从而解释了多态的动态绑定和运行时类型确定的特点。Python的这种行为体现了面向对象编程中的多态性,是类继承的具体应用。
摘要由CSDN通过智能技术生成

什么是多态:

由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同。

多态的概念

指出了对象如何通过他们共同的属性和动作来操作及访问,而不需考虑他们具体的类。

多态表明了动态(又名,运行时)绑定的存在,允计重载及运行时类型确定和验证。

类的继承有两层意义:1.改变 2.扩展

多态就是类的这两层意义的一个具体的实现机制即,调用不同的类实例化得对象下的相同的方法,实现的过程不一样

python中的标准类型就是多态概念的一个很好的示范

代码示例一:s1 = 'abc'

l1 = [1, 2, 3]

print(s1.__len__())  # 等同于len(s1)

print(l1.__len__())  # 等同于len(l1)

代码示例二:class H2O:

def __init__(self, name, temperature):

self.name = name

self.temperature = temperature

def turn_ice(self):

if self.temperature 

print('[%s]温度太低结冰了' % self.name)

elif self.temperature > 0 and self.temperature 

print('[%s]液化成水' % self.name)

elif self.temperature > 100:

print('[%s]温度太高变成了水蒸气' % self.name)

class Water(H2O):

pass

class Ice(H2O):

pass

class Steam(H2O):

pass

w1 = Water('水', 25)

i1 = Ice('冰', -20)

s1 = Steam('蒸汽', 3000)

def func(obj):

obj.turn_ice()

func(w1)    # w1.turn_ice()

func(i1)    # i1.turn_ice()

func(s1)    # s1.turn_ice()

w2 = Water('水', 101)

func(w2)

python本身就是一个多态,多态是继承的体现方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值