在Python中创建一个覆盖超类方法的子类

时间:2011-03-22 05:46:51

标签: python class subclass

所以我正在尝试创建一个名为Dean的类,这个类必须能够调用超类(只打印出一个文本)。有人告诉我使用Professor.say(自我,东西)来召唤超级的人说但我真的没有。

我的代码如下:

Class Dean(Professor):

    Professor.say(self, stuff)

    self.say(stuff + "- We need money now, send") 

如果以前不清楚,那么重点是要让Dean说这对于超类的任何一个例子说,这意味着即使在子类中有其他的说法实例(比如我的讲师或教授)其他Python问题)它仍然会说“ - 我们现在需要钱,发送”。答案很受欢迎,但只是提示我困惑的地方同样好。

1 个答案:

答案 0 :(得分:4)

让我尝试使用正确的术语重新说明你所说的内容。您希望此Professor的子类(称为Dean)具有覆盖其超类中的方法的方法;方法的名称是sayDean的方法应该调用超类的方法版本。

答案是:您使用相同的名称和参数定义覆盖方法的方式与在超类中定义方法的方式相同。在该方法中,您可以使用被告知的代码在子类执行任何需要的操作之前使用Professor.say(self, stuff)来调用超类的方法版本。