<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def proxy_for(self, obj):
 """Returns the ``Proxy`` for the target object, creating it if necessary. :param object obj: The object that will be doubled. :return: The mapped ``Proxy``. :rtype: Proxy """


        obj_id = id(obj)

        if obj_id not in self._proxies:
            self._proxies[obj_id] = Proxy(obj)

        return self._proxies[obj_id]