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.