On Sat, 01 Nov 2014 12:42:10 -0400, Seymore4Head wrote: > OK Maybe I misunderstood the question. > > My answer to you then is ......I don't know. I will have to think about > it some more.
The question (I thought) was to write a class for Square that inherited a class Rectangle but imposed on it the additional constraints of a square over a rectangle, namely that length == width. To do this, you need to override the inherited methods to set length and width with new methods to set length and width as follows: when setting length, also set width equal to length. when setting width, also set length equal to width. For bonus points, if your constructor accepts width and length parameters (from the Rectangle constructor) then detect if they are different and raise a suitable error. from math import sqrt class SquareGeometryError(Exception): """The parameters create an illegal geometry for a square""" pass class Rectangle: def __init__(self,length,width): self.length=length self.width=width def area(self): return self.length*self.width def perimeter(self): return 2*self.length+2*self.width def diagonal(self): return sqrt(self.length*self.length+self.width*self.width) def get_width(self): return self.width def get_length(self): return self.length def set_width(self, width): self.width = width def set_length(self, length): self.length = length class Square(Rectangle): _def _init__(self, length, width): if not length == width: raise SquareGeometryError("Length must equal width") self.length = length # or width self.width = length # or width def set_width(self, width): self.length = width self.width = width def set_length(self, length): self.length = length self.width = length Note that to make my square, I only need to over-ride those rectangle methods which allow the setting of length and width to enforce squareness upon the square. All the other methods of rectangle will work equally well for the square. -- Denis McMahon, denismfmcma...@gmail.com -- https://mail.python.org/mailman/listinfo/python-list