ExpertiDict

Python · Avançado · Inglês · Técnico

abstract base class

/ˈæbstɹækt beɪs klæs/substantivo

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 abstrato

Exemplos

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

Veja também

Todos os termos de Python