from abc import ABC, abstractmethod class Figura2D(ABC): def __init__(self, nombre): """Constructor de la clase""" self.Nombre = nombre def __str__(self): """Regresa su valor en forma de cadena""" return ( "Nombre: " + self.getNombre() + " Area: " + str(self.area()) + " Perimetro: " + str(self.perimetro()) ) def visualiza(self): """Visualiza su valor""" print(self) def getNombre(self): """Regresa el nombre""" return self.Nombre @abstractmethod def perimetro(self): pass @abstractmethod def area(self): pass class Cuadrado(Figura2D): def __init__(self, lado): """Constructor de la clase""" Figura2D.__init__(self, "Cuadrado") self.Lado = lado def perimetro(self): """retorna el perimetro""" return self.Lado * 4.0 def area(self): """Retorna el area""" return self.Lado * self.Lado """ Prueba de las clases """ if __name__ == "__main__": a = Cuadrado(2) b = Cuadrado(5) a.visualiza() b.visualiza()