<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, obj, key):
 """ Retrieve 'key' from an instance of a class which previously exposed it. @param key: a hashable object, previously passed to L{Exposer.expose}. @return: the object which was exposed with the given name on obj's key. @raise MethodNotExposed: when the key in question was not exposed with this exposer. """

        if key not in self._exposed:
            raise MethodNotExposed()
        rightFuncs = self._exposed[key]
        T = obj.__class__
        seen = {}
        for subT in inspect.getmro(T):
            for name, value in subT.__dict__.items():
                for rightFunc in rightFuncs:
                    if value is rightFunc:
                        if name in seen:
                            raise MethodNotExposed()
                        return value.__get__(obj, T)
                seen[name] = True
        raise MethodNotExposed()