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中的“多重继承中同名方法与属性的调用选择”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”

 

  不要停留在理论规则上面,快动起来吧!

 

(通过游戏模式学习与训练,需要在电脑上运行)

进入游戏学习与训练