'Initializes an angle.
@param angle: The value of the angle in decimal degrees. (L{None} if
unknown).
@type angle: C{float} or L{None}
@param angleType: A symbolic constant describing the angle type. Should
be one of L{Angles} or {None} if unknown.
@raises ValueError: If the angle type is not the default argument,
but it is an unknown type (not in  C{Angle._RANGE_EXPRESSIONS}),
or it is a known type but the supplied value was out of the
allowable range for said type.'

def __init__(self, angle=None, angleType=None):

    if ((angleType is not None) and (angleType not in self._RANGE_EXPRESSIONS)):
        raise ValueError('Unknown    angle    type')
    if ((angle is not None) and (angleType is not None)):
        rangeExpression = self._RANGE_EXPRESSIONS[angleType]
        if (not rangeExpression(angle)):
            template = 'Angle    {0}    not    in    allowed    range    for    type    {1}'
            raise ValueError(template.format(angle, angleType))
    self.angleType = angleType
    self._angle = angle
