有父方法繼承方法:從父類
def move(self,dx,dy):
self.x += dx
self.y += dy
這將移動前:點(1,1)移動(2,3) - >點(3,4)
我有一個需要包含相同方法的子函數,我該如何調用它?
有父方法繼承方法:從父類
def move(self,dx,dy):
self.x += dx
self.y += dy
這將移動前:點(1,1)移動(2,3) - >點(3,4)
我有一個需要包含相同方法的子函數,我該如何調用它?
如果您的孩子班級功能有不同的名稱,請使用致電self.move(argx, argy)
。所有方法都被繼承以在實例上可用。
如果您的子方法具有相同的名稱(並因此覆蓋父方法),則可以使用super(ChildClass, self).move(argx, argy)
來調用它。如果您使用Python 3,則可以完全省略參數super()
,只需使用super().move(argx, argy)
。
您的代碼應該是這樣的:
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)
這給我一個持續的錯誤 – andrchr
類型錯誤:不支持的操作數類型(S)爲+ =:「點」和「廉政」是它給了我 – andrchr
@andrchr的錯誤:你是負責確保該方法仍然有意義。你的子類已經爲'self.x'或'self.y'分配了一個'Point'類。 –
我將如何去改變它? – andrchr