Repaso
English

¿Qué pasa si intentas Shape() cuando Shape es una clase base abstracta con un @abstractmethod area()?

Opciones

  1. Funciona, y el método area() simplemente devuelve None
  2. TypeError: no es posible instanciar una clase abstracta (Opción correcta)
  3. Crea automáticamente un objeto Circle por defecto
  4. SyntaxError, que se lanza al cargar el archivo

Respuesta

TypeError: no se puede instanciar una clase abstracta

Por qué

Una clase abstracta es una plantilla que no está pensada para usarse directamente. Declara métodos que cada subclase DEBE implementar.

Python se niega a crear un objeto a partir de ella. Una subclase como Circle que implementa area() se puede crear con normalidad.

Esto garantiza que toda figura tiene de verdad un método area().

Recuerda

Las clases abstractas definen el contrato; solo se crean las subclases completas.

Términos clave

Practica esta pregunta en Repaso