, , , , , , ,

Classes abstractes en Python

Python permet la creació de classes abstractes, és a dir, que no permeten instàncies directes sobre aquestes.

Una altra classe sí que pot, però, heretar de la classe abstracta. Aleshores sí que es poden fer instàncies sobre aquesta nova classe.

Per poder crear una classe abstracta cal importar del mòdul «abc» la classe ABC.

Exemple de classe abstracta en Python

from abc import *  # necessari per a la classe ABC (Abstract Base Class) i # abstractmethod
 
# per crear una classe abstracta heretem la classe ABC i establim mètodes abstractes
class Entitat(ABC):
    @abstractmethod
    def existeix(self):
        pass
 
 
class Persona(Entitat):
    # implementem el mètode existeix()
    def existeix(self):
        print("salutacions des de la classe Persona")
 
 
class Cosa(Entitat):
    # implementem el mètode existeix()
    def existeix(self):
        print("salutacions des de la classe Cosa")
 
 
# e = Entitat()  # donaria error ja que la classe 'Entitat' és abstracta
 
p = Persona()  # donaria error quan instanciéssim objetos si no implementem el mètode 'existeix'
p.existeix()
 
 
c = Cosa()
c.existeix()  # el mateix