2017-07-03 82 views
0

我知道標題聽起來有點亂碼,但我不知道它叫什麼。我想要做的是創建一個帶有函數的類,然後創建一個帶有「子函數」的子類,當我調用它時,它將運行父函數版本和子版本。 我試圖谷歌它和搜索StackOverflow,但正如我所說,我只是不知道它是什麼所謂的,所以我沒有找到任何有趣的事情,我甚至不知道是否有可能。如何在父級函數和子級函數都具有函數的子類中創建「子函數」?

例子:

class Parent: 
    def function(self): 
     print("parent class") 

class Child(Parent): 
    def function(self): 
     print("child class") 

p = Parent() 
c = Child() 

p.function() 
c.function() #How can I make this print "parent class" AND "child class"? 

此外,這是我的第一個堆棧溢出的問題,所以如果我不小心打破任何規則,請告訴我:)

回答

1

打印「兒童班」之前,您需要做的只是super(Child, self).function()。祝你好運。 :)

+0

非常感謝!對此,我真的非常感激! – mocqoro

+0

另外,將這稱爲「兒童功能」是否合適? – mocqoro

+0

我認爲在C風格的編程語言中,可以通過子類添加到/ modified(* overloaded *)的函數稱爲* virtual *函數。 – ApprenticeHacker

2

在孩子:

def function(self): 
    super(Child, self).function() 
    ... 
+1

注意:在Python2.x中,super僅適用於新式類,因此您需要指定從'object'繼承的'Parent' –

+0

非常感謝! – mocqoro

+0

@JustinBell謝謝!這很好知道! – mocqoro