'Initializer.
Args:
name: The name of the computed field for the expression.
expression: The expression to evaluate and return in a field with
given name in results. See
https://developers.google.com/appengine/docs/python/search/overview#Expressions
for a list of legal expressions.
Raises:
TypeError: If any of the parameters has an invalid type, or an unknown
attribute is passed.
ValueError: If any of the parameters has an invalid value.
ExpressionError: If the expression string is not parseable.'

def __init__(self, name, expression):

    self._name = _CheckFieldName(_ConvertToUnicode(name))
    if (expression is None):
        raise ValueError('expression    must    be    a    FieldExpression,    got    None')
    if (not isinstance(expression, basestring)):
        raise TypeError(('expression    must    be    a    FieldExpression,    got    %s' % expression.__class__.__name__))
    self._expression = _CheckExpression(_ConvertToUnicode(expression))
