Interfaces y Abstract Base Class (ABC)

Métodos abstractos


Python permite combinar @abstractmethod con otros decoradores como @classmethod, @staticmethod o @property. Esto permite definir métodos abstractos que también sean de clase, estáticos o propiedades.

from abc import ABC, abstractmethod

class MiClase(ABC):

    @classmethod
    @abstractmethod
    def metodo_de_clase(cls):
        pass

    @staticmethod
    @abstractmethod
    def metodo_estatico():
        pass

    @property
    @abstractmethod
    def mi_propiedad(self):
        pass

Estos métodos también deberán ser implementados por las subclases, respetando su tipo correspondiente. Es decir, si un método es estático, deberá ser implementado como estático en la subclase.