'Args:
param(HyperParam or str): if is a :class:`str`, it is assumed to
be a :class:`GraphVarParam`.'

def __init__(self, param):

    if isinstance(param, six.string_types):
        param = GraphVarParam(param)
    assert isinstance(param, HyperParam), type(param)
    self.param = param
    self.last_value = None
