Python 多重继承中同名方法与属性的调用选择
接下来,我们准备为大家介绍"多重继承时的同名方法与属性的调用选择"。
在多重继承时,多个父类之间的方法与属性名字有可能会相同,那么,在子类调用时,究竟是调用哪个父类的方法或属性呢?
选择方法如下:
(1)在类外通过子类定义的对象调用父类的方法时,按照继承时的顺序,从左往右寻找
父类中同名的方法,找到就立即调用。
(2)在子类定义时,在子类中如果需要调用父类中的方法或属性,可以通过父类名字来调用,
格式:父类名.方法
父类名.属性
接下来,我们结合例子作进一步的学习
例子:
#========================
#定义了一个描述手枪的类Gun
#========================
class Gun :
def Boom( self ): #定义了方法__Boom
pow = 1000
return pow
#========================
#定义了一个描述散弹枪的类ShotGun
#========================
class ShotGun :
x = 1
def Boom( self ): #定义了方法__Boom
pow = 3000
return pow
#========================
#定义了一个描述角色类Role,并继承了手枪类与散弹枪类
#========================
class Role( ShotGun,Gun ):
rx = 10 #角色的位置X
ry = 10 #角色的位置Y
x = ShotGun.x #通过父类名字ShotGun调用公有属性x,并将其赋给
子类Role中的属性x
Bm = Gun.Boom #通过父类名字Gun调用公有方法Boom,并将其赋给
Role类中的Bm方法
r1 = Role() #定义了r1对象
r1.Boom() #调用了父类ShotGun中公有方法Boom,因为继承的顺序是ShotGun在先
r1.Bm() #调用了父类Gun中公有方法Boom,因为,在Role类中,通过父类Gun将Boom
方法赋给了Bm,所以,Bm调用的是父类Gun中的方法Boom
非常好,现在,我们已经掌握了Python中的“多重继承中同名方法与属性的调用选择”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)