'''
ARGOMENTI:
---------------------------------------------------------------------

	ereditarieta' multipla
		La classe deriva da piu' classi
		
'''


class Umano:
	def __init__(self, no, li):
		self.nome = no
		self.lingua = li
		
	def visualizza(self):
		print (" >>> Sono un UMANO di nome", self.nome, "e parlo",self.lingua)
  
class Animale:
	def __init__(self, ti, no, ve):
		self.tipo = ti
		self.nome = no
		self.verso = ve
	def visualizza(self):
		print (	" >>> Sono un " + self.tipo + ", mi chiamo ", self.nome, " e faccio", self.verso)
		
		
class FiguraMitologica(Umano, Animale):
    def __init__(self, nome, lingua, tipo, verso, mi):
		# Non ho capito bene come gestisce l'attributo "nome" utilizzato 
		# sia in "Umano" che in "Animale". Sembra che la nuova classe 
		# (FiguraMitologica) lo gestica in modo univoco.
        Umano.__init__(self, nome, lingua)  
        Animale.__init__(self, tipo, nome, verso)
        self.mitologia=mi
 
    def visualizza(self):
       print (	"Sono meta' UOMO e meta' " +  self.tipo + 
				", mi chiamo",self.nome +
				", parlo", self.lingua, "oppure posso fare", self.verso,
				"e appartengo alla mitologia",self.mitologia)
			
        
print ("-------------")
u1=Umano("TIZIO","TEDESCO")
u2=Umano("CAIO","FRANCESE")
u3=Umano("SEMPRONIO","ITALIANO")
u1.visualizza()
u2.visualizza()
u3.visualizza()

print ("-------------")
a1=Animale("CANE", "REX", "BAU")
a2=Animale("GATTO", "KITTY", "MIAO")
a1.visualizza()
a2.visualizza()


f1=FiguraMitologica("CENTAURO", "GIARGIANESE", "CAVALLO",  "HIIIIHHH", "GRECA")
f2=FiguraMitologica("SFINGE", "ARABO", "LEONE","ROOOARRR", "EGIZIA")
print ("-------------")
f1.visualizza()
print ("-------------")
f2.visualizza()
print ("-------------")
