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方法,
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方法,
相关文章推荐
- 树莓派红外反射传感器(Python程序)
- 静态方法和静态变量
- Python中LIst与Tuple的对比总结
- Python类的继承
- callback回调函数--python
- Python类成员方法与静态方法
- python3登录极路由并读取宽带帐号帐号密码.py
- python的datetime库笔记
- python函数学习笔记
- Python Socket
- Python类的属性
- Python包安装报错解决方法
- python实现线程池
- Python中的__name__和__main__含义详解
- python安装numpy函数库
- Python中的模块
- python numpy的学习
- python递归目录子目录列出目录和文件
- python 写爬虫
- Python main的命令行参数:sys.argv