, , , , , , ,

Herència múltiple en Python

Python permet que una classe hereti de diverses classes mare alhora.

Exemple d'herència múltiple en Python

class Treballador():
    contracte_fix = True
 
    def __init__(self, edat, salari):
        self.edat = edat
        self.salari = salari
 
    def mostra(self):
        print(str(self.edat), "anys", str(self.salari), "Euros")
 
 
class Programador():
    def __init__(self, llenguatges):
        self.llenguatges = llenguatges + ["Java"]
 
    def mostra(self, text):
        print(text.upper(), self.llenguatges)
 
 
# herència de diverses classes
class ProgramadorContractat(Treballador, Programador):
    # des del constructor de la classe puc invocar els constructors de les classes mare
    def __init__(self, edat, salari, llenguatges, durada_contracte):
        self.durada_contracte = durada_contracte
        Treballador.__init__(self, edat, salari)
        Programador.__init__(self, llenguatges)
 
    # el mateix des d'un mètode per invocar els mètodes de les classes mare
    def mostra(self, text):
        Programador.mostra(self, text)
        Treballador.mostra(self)
 
 
contractat1 = ProgramadorContractat(30, 300000, ["Python", "R"], 2)
contractat1.mostra("Experiència:")
# EXPERIèNCIA: ['Python', 'R', 'Java']
# 30 anys 300000 Euros
print(contractat1.contracte_fix)  # True