2012-12-15 97 views
0
# Derived class that inherits from Base class. Only one of the 
# parent methods should be redefined. The other should be accessible 
# by calling child_obj.parent_method(). 
class Derived(Base): 
    def result(self,str): 
     print "Derived String (result): %s" % str 

# Base class that has two print methods 
class Base(): 
    def result(self,str): 
     print "Base String (result): %s" % str 

    def info(self,str): 
     print "Base String (info): %s" % str 

我認爲我想要做的事很簡單,但我從來沒有在Python中處理過繼承。沒有任何我正在嘗試似乎工作。我想要做的是創建一個類,它重新定義了基類中的一些原始方法,同時仍然可以訪問基類中的所有其他方法。在上面的例子中,我希望能夠做到這一點:python繼承 - 引用基類方法

derived_obj.result("test") 
derived_obj.info("test2") 

和輸出會是這樣:

Derived String (result): test 
Base String (info): test2 

我缺少的東西或應這項工作作爲當前它寫的?

+1

它應該像你寫下來一樣工作(只要你先定義'Base()')。你看到了什麼問題? –

+0

說實話,我甚至不知道如何實例化對象。我一直在閱讀足夠的知識來了解如何定義類,但我無法弄清楚下一步。 – Anthony

回答

4

是的,它會工作(幾乎)爲-是:

class Base(object): 

    def result(self, s): 
     print "Base String (result): %s" % s 

    def info(self, s): 
     print "Base String (info): %s" % s 

class Derived(Base): 

    def result(self, s): 
     print "Derived String (result): %s" % s 

derived_obj = Derived() 
derived_obj.result("test") 
derived_obj.info("test2") 

我:

  1. 衍生Baseobject;
  2. 移動Base出現在Derived之前;
  3. 改名爲str,因爲它的影子形式不好builtin functions;
  4. 添加代碼以實例化Derived
+0

太棒了。謝謝。我現在看到Martijn在他對我原來的帖子的評論中的意思。另外,感謝3號小費。 – Anthony