Dobrý den,
snažím se pochopit jak funguje dědění z více tříd. Napsal jsem si zde testovací třídy. U třídy FirstClassMutant mi všechno funguje, tak jak by mělo. Ale u SecondClassMutant přesně nevím, jak dostat atributy z jednotlivých tříd do třídy SecondClassMutant tak, abych s nimi mohl pracovat. Zkoušel jsem více možností, ale nepodařilo se mi to. Poslední jsme nechal zakomentované. Mohl by mi prosím někdo poradit? Je více možností jak toto řešit?
class Dog():
def __init__(self, dog_name):
self.dog_name = dog_name
class Cat():
def __init__(self, cat_name):
self.cat_name = cat_name
class Mouse():
def __init__(self, mouse_name):
self.mouse_name = mouse_name
class FirstClassMutant(Dog):
def __init__(self, mutant_name, dog_name):
super().__init__(dog_name) self.mutant_name = mutant_name
def print_hi(self):
print('I am from dog %s and my name is %s.' % (self.dog_name, self.mutant_name))
class SecondClassMutant(Dog, Cat, Mouse):
def __init__(self, mutant, mutant_color, dog, cat, mouse):
# super(Dog, self).__init__(dog_name=dog)
# super(Cat, self).__init__(cat_name=cat)
# super(Mouse, self).__init__(mouse_name=mouse)
self.mutant_name = mutant
self.mutant_color = mutant_color
def print_hi(self):
print('I am from %s, %s, %s and my name is %s %s' % (self.dog_name, self.cat_name, self.mouse_name,self.mutant_color, self.mutant_name, ))
// ok
first = FirstClassMutant('Gzz', 'Rex')
first.say_hello()
// ???
second = SecondClassMutant(mutant='Fzz',
mutant_color='Red',
dog_name='Rex',
cat_name='Tom',
mouse_name='Jerry')
second.print_hi()