import math class Shape(object): def __init__(self,base,side): self.base=base self.side=side def area(self): return self.base*self.side def perimeter(self): return 2*(self.base+self.side) def __str__(self): return 'I am a %s with area of %d' % (type(self).__name__, self.area()) class Rectangle(Shape): def __init__(self, base, side): super(Rectangle, self).__init__(base,side) class Square(Shape): def __init__(self, base): super(Square, self).__init__(base,base) d1=Rectangle(4,5) d2=Square(4) print(d1.area()) print(d2.area())