在Python中调用父类中的子方法

2024-06-16 15:01:00 发布

您现在位置:Python中文网/ 问答频道 /正文

注意:这不是关于Calling a parent method in a child class .super()

我有三个类,比如ParentChild1和{}。Child1和2都有方法Cry()Parent类有另一个方法,例如MakeChildrenStopCry(),其中{}被调用。但是,Parent类没有Cry()方法。我需要在Parent类中定义Cry()吗?在

因为我没有父类的任何对象,而且我总是使用子类,所以我简单地创建了“空函数”,因为继承将用Child类中的函数来否决这些空函数。在

def MakeChildrenStopCry(self):
   if self.Cry():
    self.DoWhateverToStopCry(self)
def Cry(self)
   return()

对于完整的示例代码you can check this,但我认为上面的内容应该很清楚。在

这并没有在我的代码中引起任何问题,我只想知道正常情况下是怎么做的,或者用不同的方式设置代码是否更好。在


Tags: 方法函数代码inselfchilddefmethod
1条回答
网友
1楼 · 发布于 2024-06-16 15:01:00

Python在这个级别上相当自信。您始终可以从类中调用cry方法,即使它没有在类中定义。Python将信任您提供一个在调用if时知道cry方法的对象。在

所以这很好:

class Parent:
    def makeChildrenStopCry(self):
        if self.cry():
            self.doWhateverToStopCry()

class Children(Parent):
    crying = False
    def makeCry(self):
        self.crying = True
    def doWhateverToStopCry(self):
        self.crying = False
    def cry(self):
        return self.crying

它在交互式会话中给出:

^{pr2}$

相关问题 更多 >