python继承和反射 继承 class Animal:def __init__(self, name, age):self.name = nameself.age = ageself.sleep() # 先调用子类的方法,没有调用父类的方法,没有就报错。def sleep(self):print("Animal sleep ...")def eat(self):print("Animal eat ...")# 子类继承Animal父类 class Dog(Animal):# def sleep(self):# print("Dog sleep ...")passDog("旺财", 3) 注意Animal的__init__方法中的self.sleep函数会首先调用Dog类中重新的sleep方法,这里被注释掉了,进而调用父类中的sleep方法。 反射 class Animal:def __init__(self, name, age, func_str):self.name = nameself.age = agefunc = getattr(self, func_str) # 寻找self的func_str方法func()def sleep(self):print("Animal sleep ...")def eat(self):print("Animal eat ...")class Dog(Animal):def sleep(self):print("Dog sleep ...")# 传入函数名,指定执行函数 Dog("旺财", 3, func_str="sleep") 注意getattr函数会先充子类寻找指定的func_str函数名,子类没会从父类中寻找,直到超类(基类object)缺失则报错。