给定父类'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
答案 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