父类方法可以调用将在子类中实现的抽象方法吗?
原学程将引见女类办法不妨挪用将在子类中完成的笼统办法吗?的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。
成绩描写
假如我有1个包括二个办法的女类:
class Parent():
@abstractmethod
@staticmethod
def functionA():
pass
def functionB():
return __class__.functionA() + 一
我完成了1身材类:
class Child(Parent):
def functionA(): # this function is different for each kind of child
return 三
回根结底,子类的目标只是挪用functionB()
。
它起感化了吗?固然,我不妨将functionB()
搁到子类中并使其任务,但是由于functionB()
关于每一种子类皆是雷同的,所以我没有想为每一个类编辑反复的代码?
别的,我在这里应用__class__
适合吗?
推举谜底
起首,functionB
自己应当是类办法。
@classmethod
def functionB(cls):
return cls.functionA() + 一
其次,您依然必需将functionA
装潢为每一身材类中的动态办法;不然,叨教用虚例办法调换继续的动态办法。
class Child(Parent):
@staticmethod
def functionA():
return 三
佳了闭于女类办法不妨挪用将在子类中完成的笼统办法吗?的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。