这是python继承的一个最小示例:
class Parent(object):
def __init__(self, time):
self.time=time
def forward(self):
return 0
class Child(Parent):
def forward(self):
return 1
在初始化Child
类时,我想覆盖基于self.time
的forward
函数。
即,如果是self.time==2
,则使用Parent的正向函数而不是Child的。
class Child(Parent):
def __init__(self, time):
super(Child, self).__init__(time)
if self.time==2:
pass
#todo: use super().forward instead
def forward(self):
return 1
我可以在python(3.8+(中实现它吗?
可以在Python:中动态分配方法
class Child(Parent):
def __init__(self, time):
super(Child, self).__init__(time)
if self.time == 2:
self.forward = super(Child, self).forward
def forward(self):
return 1
或者您可以在Child.forward
:中调用Parent.forward
class Child(Parent):
def forward(self):
return super(Child, self).forward() if self.time == 2 else 1