第53天python学习面向对象多态

你离开我真会死。 提交于 2019-12-01 13:39:13
#多态:由不同的类实例化得到的对象,调用一个方法,执行的逻辑不同#多态的概念:指出了对象如何通过他们共同的属性和动作来操作及访问,而不需要考虑他们具体的类#多态是反映运行时候的一种情况,python本身就是一种多态#python本身就是一种多态代码例子如下:#我们经常看到的执行情况# li=[1,2,4,9]# print(len(li))# str="asdlasjdlas"# print(len(str))## #python时间运行情况# li=[1,2,4,9]# print(li.__len__())# str="asdlasjdlas"# print(str.__len__())#li 和 str虽然不是相同的对象,但是可以调用方法__len__方法#多态的例子class H2O:    def __init__(self,name,shuizhuantai):        self.name=name,        self.shuizhuantai=shuizhuantai    def turn_ice(self):        if self.shuizhuantai<0:            print("[%s]温度太低结冰了"%self.name)        elif self.shuizhuantai>0 and self.shuizhuantai<100:             print("[%s]液化成水"%self.name)        elif self.shuizhuantai>100:            print("[%s]温度太高变为水蒸气"%self.name)class Water(H2O):    passclass Ice(H2O):    passclass Steam(H2O):    pass#实例化W1=Water("水",30)I= Ice("冰",-24)S=Steam("水蒸气",200)#水不同形态但是他可以调用相同方法,执行结果不一样# W1.turn_ice()# I.turn_ice()# S.turn_ice()#定义一个统一的接口def fun(obj):    obj.turn_ice()fun(W1)fun(I)fun(S)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!