类的继承

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]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值