2014-12-01 42 views
-2

我擔心自己會轉儲爲地獄,但我不知道如何在類實例中覆蓋變量名稱時從類執行方法。如果childs屬性被覆蓋,則訪問父函數

class foo(): 
    def do_stuff(self, name): 
     self.new = name 

inst = foo() 
inst.do_stuff("Hello") 
inst.do_stuff = 19 

這是起始位置。在東西正在運行時,變量do_suffinst中被聲明,所以函數被覆蓋。我的問題是,如果我想更改inst的變量new,我該如何管理該方法被調用而不是變量?

我以爲super()是要走的路,但我不知道如何正確實現這一點。不幸的是,我的英文不太好,所以我可能會搞砸,要求搜索正確的問題。

+0

你是怎樣嘗試使用的方法'超級',以什麼方式不起作用? – 2014-12-01 20:42:52

回答

1

你沒有一個父母和孩子,你有一個類,超使用的實例,當你overwite基類

super

2

爲什麼要覆蓋屬性do_stuff?你不應該那樣做。

foo.do_stuff(inst) 
+0

我的例子很糟糕,我現在看到了。我想要做的就是寫一些類似於「數據庫」的地方,其中「Table」從字典繼承,所以我可以通過foo [「table1」] = Table()創建新表。 我的問題是,如果有一個與已有函數同名的新表,我想我需要通過super()調用該函數。 – Mirodin 2014-12-08 20:19:45