W jaki sposób wywołuje się metodę więcej niż jednej klasy w górę łańcucha dziedziczenia, jeśli została nadpisana przez inną klasę po drodze?Wywołanie metody nadrzędnej jednostki nadrzędnej, która została nadpisana przez jednostkę nadrzędną.
class Grandfather(object):
def __init__(self):
pass
def do_thing(self):
# stuff
class Father(Grandfather):
def __init__(self):
super(Father, self).__init__()
def do_thing(self):
# stuff different than Grandfather stuff
class Son(Father):
def __init__(self):
super(Son, self).__init__()
def do_thing(self):
# how to be like Grandfather?
czy istnieje powód, aby wolą swoją odpowiedź Thierry J'S? –
Użyj tego, jeśli zawsze chcesz "dziadka", niezależnie od tego, czy jest to bezpośrednia nadrzędna "ojca". Użyj Thierry'ego, jeśli chcesz superklasy ojca, bez względu na to, czy jest to "dziadek". –