Python类继承新类型类

时间:2013-03-05 19:28:02

标签: python

我试图理解Python中的类继承并创建了下面的继承,

问题:当我继承B类并调用方法A时,它会打印“Im方法B”..它不会调用A类的methodA吗?

class A(object):
    def methodA(self):
        print 'Im method A'


class B(A):
    def methodA(self):
        print 'Im method B'    

class C(A):
    def methodA(self):
        print 'Im method C'    

class D(B,C):
    def methodA(self):
        print 'Im method D'            
def main():
    x = D()
    x.methodA()

2 个答案:

答案 0 :(得分:5)

不,如果您要调用您覆盖的方法,则必须使用super手动执行此操作:

class B(A):
    def methodA(self):
        super(B, self).methodA()
        print 'Im method B' 

答案 1 :(得分:1)

没有。默认情况下,Python方法隐式virtual。这意味着它们将始终被相应的子类方法覆盖。