我有以下课程:
class A:
def __init__(self,x):
self.x = x
self.xp = self.preprocess(x)
def preprocess(self,x):
return(x**2)
class B(A):
def __init__(self,x,y):
A.__init__(self,x)
self.y = y
def results():
return(self.xp + self.y)
在此玩具示例中,A
用于读取一些数据(x
)并对其进行预处理(xp
)。
B
进一步读取一些数据(y
),并使用来自的预处理数据产生结果A
。
现在我需要创建一个类C
。C
具有与完全相同的区别B
,因此我很想简单地将其定义为:
class C(B):
pass
但是,我需要重写该A.preprocess()
方法,以便在C
构造时使用正确的预处理。有没有简单而直接的方法来做到这一点?
是的,只需在上定义一个新preprocess
方法C
:
class C(B):
def preprocess(self, x):
return x + x
该A.__init__()
方法将在用调用时在定义的方法上找到该方法。A
type(self) is C
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句