class GrandParent():
def __init__(self, a, b):
self._a = a
self._b = b
def blah(self):
return "GP:" + self._a + self._b
class Parent2(GrandParent):
def __init__(self, a, b, c):
self._a = b
self._b = a
self._c = self.blah()
class Child2(Parent2):
def __init__(self, a, b, c, d):
Parent2.__init__(self, a, b, c)
def blah(self):
return ("C2: " + self._a + self._b
+ self._c + self._d)
c2 = Child2("A", "B", "C", "D")
Вот код, который я должен отслеживать. Я создаю объект c2
из Child2
. Я иду в Child2.__init__
. Я иду в Parent2.__init__
. I инициализировать self._a
, self._b
.Python ООП отслеживание небольшой путаницы
Моя проблема с self._c
.
Parent2
не метод blah()
, поэтому я ожидал бы получить self._c
от GrandParent.blah()
, но вместо этого он идет к Child2.blah()
. Почему это происходит?
В вашем примере 'Child2' должен быть подклассом' Parent2' (в настоящее время он говорит 'Parent1'). Редактирование слишком мало для меня, чтобы исправить это. –
@ P-робот сделан, было сделано несколько других улучшений, которые могли быть сделаны, поэтому редактирование было достаточно большим. –
На самом деле это часть фрагмента кода чего-то большего, но Parent1 не играет никакой роли, и не было таких классов, как Child1, поэтому я удалил их, потому что они не были релевантны моей проблеме –