2015-12-06 50 views
-3

有父方法繼承方法:從父類

def move(self,dx,dy): 
    self.x += dx 
    self.y += dy 

這將移動前:點(1,1)移動(2,3) - >點(3,4)

我有一個需要包含相同方法的子函數,我該如何調用它?

回答

0

如果您的孩子班級功能有不同的名稱,請使用致電self.move(argx, argy)。所有方法都被繼承以在實例上可用。

如果您的子方法具有相同的名稱(並因此覆蓋父方法),則可以使用super(ChildClass, self).move(argx, argy)來調用它。如果您使用Python 3,則可以完全省略參數super(),只需使用super().move(argx, argy)

+0

類型錯誤:不支持的操作數類型(S)爲+ =:「點」和「廉政」是它給了我 – andrchr

+0

@andrchr的錯誤:你是負責確保該方法仍然有意義。你的子類已經爲'self.x'或'self.y'分配了一個'Point'類。 –

+0

我將如何去改變它? – andrchr

0

您的代碼應該是這樣的:

class A(object): 
    def move(self, dx, dy): 
     self.x += dx 
     self.y += dy 


class B(A): 
    def foo(self, dx, dy): 
     self.move(dx, dy) 
+0

這給我一個持續的錯誤 – andrchr