a6_1.py

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

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

    attributes: width, height, corner.
    """

def create_rectangle(x, y, width, height):
    pt = Point()
    pt.x = x
    pt.y = y
    r = Rectangle()
    r.width = width
    r.height = height
    r.corner = pt
    return r

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

def shift_rectangle(rect, dx, dy):
    rect.corner.x += dx
    rect.corner.y += dy

def offset_rectangle(rect, dx, dy):
    x = rect.corner.x + dx
    y = rect.corner.y + dy
    return create_rectangle(x, y, rect.width, rect.height)

r1 = create_rectangle(10, 20, 30, 40)
print(str_rectangle(r1))
shift_rectangle(r1, -10, -20)
print(str_rectangle(r1))
r2 = offset_rectangle(r1, 100, 100)
print(str_rectangle(r1))
print(str_rectangle(r2))