Python多重继承

来源:互联网 发布:怎么把淘宝做大 编辑:程序博客网 时间:2024/06/06 21:56
class PrintA:
    namea="PrintA"
    def set_value(self,a):
        self.a=a
    def set_namea(self,namea):
        PrintA.namea=namea
    def info(self):
        print("PrintA:%s,%s"%(PrintA.namea,self.a))
class PrintB:
    nameb="PrintB"
    def set_nameb(self,nameb):
        PrintA.nameb=nameb
    def info(self):
        print("PrintB:%s"%(PrintB.nameb))
class Sub(PrintA,PrintB):
    pass
class Sub2(PrintB,PrintA):
    pass
class Sub3(PrintA,PrintB):
    def info(self):#修改了info方法
        PrintA.info(self)
        PrintB.info(self)
print("使用第一个子类")
sub=Sub()
sub.set_value("aaaaa")
sub.info()
sub.set_nameb("BBBB")
sub.info()
print("使用第二个类")
sub2=Sub2()
sub2.set_value("aaaaa")
sub2.info()
sub2.set_nameb("BBBB")
sub2.info()
print("使用第三个类")
sub3=Sub3()
sub3.set_value("aaaa")
sub3.info()
sub3.set_nameb("BBB")

sub3.info()


代码中有两个父类A 和B

他们有一个共同的方法时info

而第一个子类Sub先后继承了父类A和B

实例化后先调用了A中的方法之后调用了info方法,由于父类都有info方法,但是由于继承顺序不同,所有继承按优先级排序。先输出A类父类的info方法

而第二个子类,继承顺序不同,所以先输出B父类的info方法,

0 0