<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get(self, key, default=None, reraise=False):
 """ Get the given key from the cache, if present. A default value can be provided in case the requested key is not present, otherwise, None will be returned. :param key: the key to query :type key: str :param default: the value to return if the key does not exist in cache :param reraise: wether an exception should be thrown if now value is found, defaults to False. :type key: bool Example usage: .. code-block:: python cache.set('my_key', 'my_value') cache.get('my_key') cache.get('not_present', 'default_value') cache.get('not_present', reraise=True) """

        if not self.enabled:
            if reraise:
                raise exceptions.DisabledCache()
            return default

        try:
            return self._get(key)
        except exceptions.NotInCache:
            if reraise:
                raise
            return default