O que fazer quando aparece NotImplementedError no Python?
O erro NotImplementedError ocorre quando um método é definido, mas sua implementação ainda não foi realizada. Esse erro é comum ao trabalhar com classes base (abstratas).
Exemplo do erro
class Animal:
def fazer_som(self):
raise NotImplementedError("Este método deve ser implementado nas subclasses.")
class Cachorro(Animal):
pass
c = Cachorro()
c.fazer_som()
Nesse caso, a classe Animal
define um método fazer_som()
, mas ele não foi implementado na subclasse Cachorro
, resultando no erro NotImplementedError
.
Solução 1: Implementar o método na subclasse
Para corrigir, basta garantir que todas as subclasses implementem os métodos necessários:
class Cachorro(Animal):
def fazer_som(self):
return "Au Au"
c = Cachorro()
print(c.fazer_som())
Agora, o método fazer_som()
foi implementado corretamente na subclasse Cachorro
, evitando o erro.
Por que o NotImplementedError é útil na POO?
O NotImplementedError é útil para forçar a implementação de métodos em subclasses. Ele é frequentemente utilizado em programação orientada a objetos para garantir que todas as classes filhas implementem métodos essenciais definidos em uma classe base.
Algumas aplicações:
- Criação de classes base para reutilização de código.
- Definição de métodos obrigatórios em subclasses.
- Melhoria na organização de código orientado a objetos.
Dicas para quem está começando
- Sempre implemente métodos obrigatórios em suas subclasses.
- Use
NotImplementedError
para definir comportamentos esperados. - Verifique se está chamando corretamente os métodos das classes base.
Contribuições de Mariana Costa