class Ant:
def __init__(self,x=0,y=0,color='black'):
self.x=x
self.y=y
self.color=color
def crawl(self,x,y):
self.x=x
self.y=y
print('爬行')
self.info()
def info(self):
print('当前位置:(%d,%d)' %(self.x,self.y))
def attack(self):
print('用嘴咬')
class FlyAnt(Ant):
def attack(self): #重载
print('用尾针')
def fly(self,x,y):
print('飞行')
self.x=x
self.y=y
self.info()
flyant=FlyAnt(color='red')
flyant.crawl(3,5)
flyant.fly(10,14)
flyant.attack()
运行结果:
爬行
当前位置:(3,5)
飞行
当前位置:(10,14)
用尾针
[Finished in 0.3s]
允许多重继承
class PrntA:
namea='PrntA'
def set_value(self,a):
self.a=a
def set_namea(self,namea):
PrntA.namea=namea
def info(self):
print('PrntA:%s,%s' %(PrntA.namea,self.a))
class PrntB:
nameb='PrntB'
def set_nameb(self,nameb):
PrntB.nameb=nameb
def info(self):
print('PrntB:%s' %(PrntB.nameb,))
class Sub(PrntA,PrntB):
pass
class Sub2(PrntB,PrntA):
pass
class Sub3(PrntA,PrntB):
def info(self):
PrntA.info(self)
PrntB.info(self)
print('使用第一个子类')
sub=Sub()
sub.set_value('aaaaa')
sub.info()
sub.set_nameb('BBBB')
sub.info()
print('使用第二个子类')
sub2=Sub2()
sub2.set_value('aaaa')
sub2.info()
sub2.set_nameb('BBBB')
sub2.info()
print('使用第三个子类:')
sub3=Sub3()
sub3.set_value('aaaa')
sub3.info()
sub3.set_nameb('BBB')
sub3.info()
结果:
使用第一个子类
PrntA:PrntA,aaaaa
PrntA:PrntA,aaaaa
使用第二个子类
PrntB:BBBB
PrntB:BBBB
使用第三个子类:
PrntA:PrntA,aaaa
PrntB:BBBB
PrntA:PrntA,aaaa
PrntB:BBB
[Finished in 0.4s]