【发布时间】:2019-06-14 16:40:33
【问题描述】:
注意:不是Calling a parent method in a child class .super()
我有三个班级,比如说Parent、Child1 和Child2。 Child1 和 2 都有方法 Cry() 和 Parent 类有另一种方法,例如MakeChildrenStopCry(),其中调用了 Cry()。但是,Parent 类没有方法 Cry()。我需要在Parent 类中定义Cry() 吗?
由于我没有父类的任何对象并且我总是使用子类,所以我只是创建了“空函数”,因为继承只会用 Child 类中的函数覆盖这些空函数。
def MakeChildrenStopCry(self):
if self.Cry():
self.DoWhateverToStopCry(self)
def Cry(self)
return()
对于完整的示例代码you can check this,但我认为上面应该很清楚。
这不会导致我的代码出现任何问题,我只是想知道正常执行的操作,或者以不同的方式设置我的代码是否更好。
【问题讨论】:
-
您可能会将子实例传递给该方法,否则您怎么知道要在哪个子实例上调用
.cry()方法? -
好的,传递一个孩子的实例,让我看看。哪个子实例调用 cry 方法并不重要,您实际上知道这一点,因为您创建了子实例并定义了函数在特定子类中的作用。
-
嗯,这就是我的意思。您不会真正创建特定的子类,而是从单个子类创建特定的子实例。将类想象为您创建具有特定属性的实例的蓝图。同样,您不会说所有父母都是 49 岁,您会说父母有
age属性,并且特定的父母(实例)很可能是 49 岁,但他们也很可能是几乎任何其他年龄。不过,解释类的概念确实超出了 SO 的范围。 -
"你可以从一个子类中创建特定的子实例。"所以我有这个方法解释信号,但是每个子类都以不同的方式解释信号,所以这不起作用。谢谢你的帮助,但你太详细了^^这只是关于Python如何处理这些事情,Serge Ballesta的回答完全回答了这个问题
标签: python class inheritance polymorphism parent-child