博客信息

Python基础之面向对象-多态

发布时间:『 2019-06-28 18:36』  博客类别:Python  阅读(642)

类似于Java中的类型向上提升/向下转换,操作前必须做类型判断


class F1(object):
    def show(self):
        print("F1.show")
class S1(F1):
    def show(self):
        print("S1.show")
class S2(S1):
    def show(self):
        print("S2.show")

def func(obj):
    #obj有前提条件, 判断某个对象属于某个类
    # isinstance(对象,类)
    # if isinstance(obj,S2) or isinstance(obj,S1) or isinstance(obj,F1):
    #     obj.show()
    # else:
    #     print("%s 不能响应show方法"%obj)
    # issubclass: 判断某个类是否为另外一个类的子类(包含本身)
    # obj.__class__ :获取对象obj所属的类
    if issubclass(obj.__class__,F1):
        obj.show()
    else:
        print("%s 不能响应show方法" % obj)
f1 = F1()
s1 = S1()
s2 = S2()

func(f1)
func(s1)
func(s2)

func('123')


over......


关键字:     Python基础       面向对象  

备案号:湘ICP备19000029号

Copyright © 2018-2019 javaxl晓码阁 版权所有