面对对象中继承调用方法的执行顺序

类继承中的方法调用示例:

  注意:类实例化对象找自己类的方法,如果没有才会去父类中这个方法

class StarkConfig(object):
    def __init__(self, model_class, site):
        self.model_class = model_class
        self.site = site

    def func(self):
        print(666)

    def run(self):
        self.func()


class RoleConfig(StarkConfig):
    def func(self):
        print(999)


obj1 = StarkConfig(11, 22)
obj1.run()  # 666

# 这里obj2调用父类的run方法,run方法返回调用自己的func方法(谁调用谁,谁就找自己类的这个方法,没有才去父类中找这个方法)
obj2 = RoleConfig(44, 55)
obj2.run()  # 999

  实例化后self.site与self.model_class都被重新赋值

class StarkConfig(object):
    def __init__(self, model_class, site):
        self.model_class = model_class
        self.site = site

    def func(self):
        print(self.site)

    def run(self):
        self.func()


class RoleConfig(StarkConfig):
    def func(self):
        print(self.site)


obj1 = StarkConfig(11, 22)
obj1.run()  # 22


obj2 = RoleConfig(44, 55)
obj2.run()  # 55

 

posted @ 2019-06-30 20:58  Amorphous  阅读(283)  评论(0编辑  收藏  举报