Python 多重继承中同名方法与属性的调用选择

 

 1、多重继承中同名方法与属性的调用选择

     在Python语言中,当子类通过多重继承的方式来继承多个父类时,如果不同的父类中出现同名的属性与方法时,

  如果去判断调用哪个父类中的属性与方法呢?那么,在这个时候,可以按照继承时的顺序

  即从左往右查找父类中同名属性与方法,只要找到了就使用。

  而另一种方法就是,在子类中调用父类的属性或方法时,加上父类的名字再调用对应的属性与方法就可以作出区别了。

 

 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语言中的(多重继承中同名方法与属性的调用选择)但是,如何去运行用它呢?

所以,我们就需要通过下方的链接,进入到Python语言的代码训练中,然后,通过实践去加深对该知识点的理解与运用。

>>>下载训练环境与使用说明(使用真实的开发环境,结合游戏闯关进行编程训练)