class Quadrat: """ Quadrat definit a partir del centre i la llargada d'un costat """ def __init__(self, centre, llargada): self.centre = list(centre) self.llargada = llargada def area(self): return self.llargada ** 2 def trasllada(self, dx, dy): self.centre[0] = self.centre[0] + dx self.centre[1] = self.centre[1] + dy def __str__(self): return ( "Quadrat centrat en " + str(tuple(self.centre)) + " de mida " + str(self.llargada) ) class QuadratColor(Quadrat): """ Quadrat amb un color. - Té un l'atribut addicional `color` (un string) - Proporciona el mètode addicional vertexs() - Redefineix __str__ """ def __init__(self, centre, llargada, color): super().__init__(centre, llargada) self.color = color def vertexs(self): """ Retorna les coordenades dels seus quatre vèrtexs """ l2 = self.llargada / 2 return ( (self.centre[0] - l2, self.centre[1] - l2), (self.centre[0] + l2, self.centre[1] - l2), (self.centre[0] - l2, self.centre[1] + l2), (self.centre[0] + l2, self.centre[1] + l2) ) def __str__(self): s = super().__str__() # aprofitem str() de la classe base return s + " i de color " + self.color