'Get the answer associated with I{key}.  Returns None if
no answer is cached for the key.
@param key: the key
@type key: (dns.name.Name, int, int) tuple whose values are the
query name, rdtype, and rdclass.
@rtype: dns.resolver.Answer object or None'

def get(self, key):

    try:
        self.lock.acquire()
        self._maybe_clean()
        v = self.data.get(key)
        if ((v is None) or (v.expiration <= time.time())):
            return None
        return v
    finally:
        self.lock.release()
