'Callable version for use as a decorator
:param func: Function to call initially and every time the
data changes. `func` will be called with a
tuple, the value of the node and a
:class:`~kazoo.client.ZnodeStat` instance.
:type func: callable'

def __call__(self, func):

    if self._used:
        raise KazooException('A    function    has    already    been    associated    with    this    DataWatch    instance.')
    self._func = func
    self._used = True
    self._client.add_listener(self._session_watcher)
    self._get_data()
    return func
