在python中,关于类的继承有很多场景和知识点。今天聚焦在一个场景:有一个父类A,类中定义了某个问题中的通用属性和方法(即后面的子类都需要用到),在子类B中需要继承这些属性和方法,同时添加自己特有的属性和方法,应该如何实现?
在子类中,继承并初始化父类属性的方式有两种:
- 显示调用父类的初始化函数,并且对属性进行初始化;
- 通过super()初始化父类属性;
对于方式1,代码:
class A:
def __init__(self,a,b):
self.a=a
self.b=b
def func(self):
return self.a+self.b
class B(A):
def __init__(self,x1,x2,x3,x4):
A.__init__(self,a=x1,b=x2)#注意必须要传入self,相当于把B的实例传进去
self.c=x3
self.d=x4
self.m=A.func(self)#同样必须传入self
self.n=self.func()
>>>ins=B(1,2,10,20)
>>>print(ins.a,ins.b,ins.c,ins.d)
1 2 10 20
>>>print(ins.m,ins.n)
3 3
>>>print(ins.func())
3
对于方式2,代码:
class A:
def __init__(self,a,b):
self.a=a
self