Python · Avançado · Inglês · Técnico
abstract base class
Classe base criada com o módulo abc que declara métodos abstratos obrigatórios. Não pode ser instanciada, e subclasses só são instanciáveis se implementarem todos os métodos abstratos.
Onde usar
Define contratos explícitos para plugins e backends, como uma interface Repo com salvar() e buscar(). O erro aparece cedo, na criação do objeto, e não só quando o método falta.
Em código
from abc import ABC, abstractmethod
class Repo(ABC):
@abstractmethod
def salvar(self, x): ...
Repo() # TypeError: método abstratoExemplos
Make it an abstract base class so subclasses must implement save.
Faça uma classe base abstrata para as subclasses terem que implementar save.
You can't instantiate an ABC with abstract methods.
Você não pode instanciar uma ABC com métodos abstratos.
Cuidado
Não confunda com Protocol: a ABC exige herança (ou registro), enquanto o Protocol aceita qualquer classe com os métodos certos.
Sinônimos
ABC, classe base abstrata