We wcześniejszym wpisie o programowaniu obiektowym w Pythonie opisałem podstawy dziedziczenia. Klasę bazową (Superclass), z której klasa potomna dziedziczy wszystkie atrybuty i metody zapisujemy w deklaracji klasy pochodnej (Subclass) jako argument tzn.
class Subclass(Superclass):
pass
Gdy klasa potomna dziedziczy po kilku klasach bazowych, to dziedziczy też atrybuty i metody z tych klas. Gdy jednak w dwóch różnych klasach bazowych są atrybuty lub metody o takich samych nazwach, to klasa potomna dziedziczy ten atrybut lub tę metodę, której klasa była wcześniej na liście argumentów w definicji klasy potomnej tzn.
class Person:
greeting = 'Hi!'
def function1(self):
print('hello')
class Employee:
greeting = "What's up!"
def function1(self):
print('world')
def function2(self):
pass
class Manager(Employee, Person):
pass
if __name__ == '__main__':
john_doe = Manager()
print(dir(john_doe)
print(john_doe.greeting)
john_doe.function1()
Jak widać na podstawie powyższego przykładu klasa Manager posiada obie metody: function1() i function2() oraz zmienną greeting. Wartością zmiennej greeting będzie napis What’s up! a wynikiem funkcji będzie wyświetlenie napisu world.
>>część druga<<