您的位置:首页 > 编程语言 > Python开发

Python多重继承

2016-06-13 23:19 447 查看
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方法,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: