a7_1.py

class Point(object):
    """Represents a point in 2-D space."""

class Rectangle(object):
    """Represents a rectangle

    attributes: width, height, corner.
    """

    def __init__(self, x, y, width, height):
        pt = Point()
        pt.x = x
        pt.y = y
        self.width = width
        self.height = height
        self.corner = pt

    def __str__(self):
        return "(%.3f, %.3f, %.3f, %.3f)" % (
            self.corner.x, self.corner.y, self.width, self.height)

    def shift(self, dx, dy):
        self.corner.x += dx
        self.corner.y += dy

    def offset(self, dx, dy):
        x = self.corner.x + dx
        y = self.corner.y + dy
        return Rectangle(x, y, self.width, self.height)

r1 = Rectangle(10, 20, 30, 40)
print(r1)
r1.shift(-10, -20)
print(r1)
r2 = r1.offset(100, 100)
print(r1)
print(r2)