Христос Воскрес!
Воистину все постигается в чтении умных книг. Буквально недавно сообразил, какую возможно грубейшую ошибку мы совершили в создании одного приложения на Python. Мы использовали для вызова методов родительского класса super.
Пример:
-
class B:
-
-
def __init__(x, y):
-
self.x = x
-
self.y = y
-
-
def setX(x):
-
self.x = x
-
-
-
class A(B):
-
def __init__(x, y, r):
-
super(A, self).__init__(x, y)
-
self.r = r
-
-
def setX(x):
-
super(A, self).setX(x + self.r)
А теперь посмотрим как было бы правильнее
-
class B:
-
-
def __init__(self, x, y):
-
self.x = x
-
self.y = y
-
-
def setX(self, x):
-
self.x = x
-
-
-
class A(B):
-
def __init__(self, x, y, r):
-
B.__init__(self, x, y)
-
self.r = r
-
-
def setX(self, x):
-
B.setX(self, x + self.r)
