Abstract methods

Simile a protocol in Swift.

Usa il decoratore @abstractmethod

Non si può istanziare una classe astratta, perché i metodi astratti non hanno un’implementazione iniziale. Si può istanziare se si crea una sottoclasse della classe astratta, e si implementano tutti i metodi astratti. Si possono implementare anche pochi metodi per sottoclasse.

class classe_astratta(ABC):
    '''Questa classe è astratta (e dunque non istanziabile direttamente)
       perché definisce (almeno) un metodo astratto
    '''
    def __init__(self, value):
        self.cached_value = value
    
    @abstractmethod
    def un_metodo_astratto(self):
        '''Un metodo astratto si 'riconosce' dal 
           decoratore @abstractmethod
        '''
        pass
		
c = classe_astratta(10)	# errore

python_book8