类似于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......
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有