Day29.单继承背景下的属性查找
1.单继承背景下的属性查找_示范1.子类继承父类,调用父类的函数前会先查看子类如果有会直接调用子类的方法
# 示范1: class Foo: def f1(self): print('Foo.f1') def f2(self): print('Foo.f2') self.f1() class Bar(Foo): def f1(self): print('Bar.f1') ''' Foo是Bar的父类(obj = Bar()),obj.f2(),先去父类中找到f2的函数, f2下又执行self.f1(),进行f1函数的调用,注意调用f1函数是obj进行 调用,obj对应的是Bar类,会先从Bar类下找是否有f1 ''' print('示范1'.center(40, '-')) obj = Bar() obj.f2()
2.单继承背景下的属性查找_示范2.子类继承父类,子类和父类都有相同函数名,调用父类中的方法,方式一
# 示范2: class Foo: def f1(self): print('Foo.f1') def f2(self): # 子类和父类都有方法,调用父类中的方法,方式一:父类.方法(self) print('示范2 子类和父类都有方法,调用父类中的方法,方式一:父类.方法(self)'.center(50, '-')) print('Foo.f2') Foo.f1(self) class Bar(Foo): def f1(self): print('Bar.f1') obj = Bar() obj.f2()
3.单继承背景下的属性查找_示范3 子类和父类都有方法,调用父类中的方法,方式二
# 示范3 class Foo: def __f1(self): print('Foo.f1') def f2(self): print('示范3 子类和父类都有方法,调用父类中的方法,方式二:使用函数隐藏方法`__`,__f1,然后父类中调用__f1'.center(60, '-')) print('Foo.f2') self.__f1() class Bar(Foo): def f1(self): print('Bar.f1') obj = Bar() obj.f2()