在写一个工具的时候,发现新写的类B里面需要用到一个函数func,这个函数func在已完成的类A中已实现,于是就想着新的类B来继承旧类A ,但是A类的构造函数中有很多参数,B类中在继承时不想使用这么多参数,只需要A中的部分参数,我改如果写继承?
如问题没描述清楚,可以讨论,烦请各位帮忙答疑
可以在新的类 B 中定义一个新的构造函数,并在新的构造函数中调用旧类 A 的构造函数。
class A:
def __init__(self, param1, param2, param3):
self.param1 = param1
self.param2 = param2
self.param3 = param3
class B(A):
def __init__(self, param1, param2):
# 调用父类的构造函数,只使用 param1 和 param2 两个参数
super().__init__(param1, param2, 0)
上述代码中,类 B 就可以继承类 A 的函数,并且在继承时只使用了部分参数。
如果类B的功能确实是类A的子集,那你就应该继承,同时也应该在构造函数中传入类A中所有需要的参数
否则类B本来跟类A毫无关系,仅仅是需要类A中的函数,那只能说明这个函数放错地方了,就不应该放在类A里面,单独拿出来放到一个公共的文件里面大家调用