我有以下课程:
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
与[{1}}具有完全相同的差异,因此我很想接受
只需将其定义为:
B
但是,我需要覆盖class C(B):
pass
方法,以便在构造A.preprocess()
时使用正确的预处理。有这么简单直接的方法吗?
答案 0 :(得分:2)
是的,只需在preprocess
上定义新的C
方法:
class C(B):
def preprocess(self, x):
return x + x
使用A.__init__()
调用时,A
方法会在type(self) is C
中找到方法方法。