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()

 

posted on 2024-06-25 21:59  与太阳肩并肩  阅读(3)  评论(0编辑  收藏  举报

导航