'The Point object may be initialized with either a tuple, or individual
parameters.
For Example:
>>> p = Point((5, 23)) # 2D point, passed in as a tuple
>>> p = Point(5, 23, 8) # 3D point, passed in with individual parameters'

def __init__(self, x, y=None, z=None, srid=None):

    if isinstance(x, (tuple, list)):
        ndim = len(x)
        coords = x
    elif (isinstance(x, (int, float, long)) and isinstance(y, (int, float, long))):
        if isinstance(z, (int, float, long)):
            ndim = 3
            coords = [x, y, z]
        else:
            ndim = 2
            coords = [x, y]
    else:
        raise TypeError('Invalid    parameters    given    for    Point    initialization.')
    point = self._create_point(ndim, coords)
    super(Point, self).__init__(point, srid=srid)
