Python继承子类(ing)

时间:2015-12-16 17:14:24

标签: python inheritance subclassing

给定父类'A'

class A(object):
    def __init__(self,a,b):
        self.a = a
        self.b = b
    def methodA():
        # do something

在以下选项中创建子类'B'有什么区别

选项1

class B(A):
    def methodB():
        # do something

选项2

class B(A):
    def __init__(self,a,b):
        A.__init__(self, a, b)
    def methodB():
        # do something

1 个答案:

答案 0 :(得分:1)

class A(object):
    def __init__(self,a,b):
        self.a = a
        self.b = b

class B(A):
    def __init__(self,a,b):
        A.__init__(self, a, b)
    def methodB():
        pass

class C(A):
    def methodB():
        pass

b = B(1,2)
c = C(1,2)
print b.a == c.a # True
print b.b == c.b # True

在两个类实例化中,A类下的 init 只会运行一次 所以不,没有什么显着不同 class B IMO并不干净,根本没有任何实际意义。无论如何它都会被运行。

如果您希望在B类初始化中执行不同的操作,那么是的,您可以使用此代码。

class B(A):
    def __init__(self,a,b):
        A.__init__(self, a+1, b+1)
    def methodB():
        pass