Según su documentación, el NotImplementedError en Python ocurre, cuando un método abstracto carece de la clase derivada requerida, para anularlo, lo que genera esta excepción.
Analicemos esto un poco.
Si bien no proporciona clases abstractas, Python permite usar el módulo, Abstract Base Classes (ABC).
Las clases abstractas son útiles porque crean escenarios para otras clases y establecen al mismo tiempo, un conjunto de métodos.
from abc import ABC, abstractmethod
class CasaBase(ABC):
@abstractmethod
def color(self):
raise NotImplementedError("Escriba una subclase que implemente el metodo")
Una clase base abstracta, incluye uno o más métodos abstractos (entiéndase, métodos que han sido declarados, pero carecen de implementación).
Las subclases, o clases secundarias, son necesarias para implementar estos métodos abstractos.
Por tanto, si usted recibe un NotImplementedError en Python esto se deberá a una de estas razones:
1. No ha creado una clase derivada, que anule el método abstracto
2. No ha implementado la clase.
Puede ver aquí como generar una excepción del error NotImplementedError
El amor siempre empieza soñando y termina en insomnio
R. Arjona