2015-12-06 5 views

ответ

0

Если функция вашего дочернего класса имеет другое имя, используйте только вызов self.move(argx, argy). Все методы наследуются так, чтобы они были доступны в экземпляре.

Если ваш дочерний метод имеет то же имя (и таким образом переопределяет родительский метод), вы можете использовать super(ChildClass, self).move(argx, argy) для его вызова. Если вы используете Python 3, вы можете вообще опустить аргументы super() и просто использовать super().move(argx, argy).

+0

TypeError: неподдерживаемый тип операнда (ов) для + =: «Точка» и «Int» это ошибка дает мне – andrchr

+0

@andrchr: вы несете ответственность за убедившись, что метод все еще имеет смысл. Ваш подкласс присвоил классу 'Point'' self.x' или 'self.y'. –

+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

Смежные вопросы