class Animal(object):
def run(self):
print("Animal is running.....")
class Dog(Animal):
def run(self):
print("Dog is running.....")
class Cat(Animal):
def run(self):
print("Cat is running.....")
class TestDuotai(object):
def run(self):
print("test_duotai is runing......")
a = Animal()
b = Dog()
c = Cat()
print(type(a))
print(type(b))
print(type(c))
print(isinstance(a, Animal))
print(isinstance(b, Animal))
print(isinstance(c, Animal))
print(isinstance(a, Dog)) # 运行为False,在继承关系中,如果一个实例的数据类型是某个子类,那它的数据类型也可以被看做是父类。但是,反过来就不行
def runing_twice(animal):
animal.run()
if __name__ == '__main__':
runing_twice(b)
runing_twice(c)
runing_twice(TestDuotai())