<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def lookup(self, project_id, keys, read_options=None):
 """Perform a ``lookup`` request. :type project_id: str :param project_id: The project to connect to. This is usually your project name in the cloud console. :type keys: List[.entity_pb2.Key] :param keys: The keys to retrieve from the datastore. :type read_options: :class:`.datastore_pb2.ReadOptions` :param read_options: (Optional) The options for this lookup. Contains either the transaction for the read or ``STRONG`` or ``EVENTUAL`` read consistency. :rtype: :class:`.datastore_pb2.LookupResponse` :returns: The returned protobuf response object. """

        request_pb = _datastore_pb2.LookupRequest(
            project_id=project_id, read_options=read_options, keys=keys
        )
        return _rpc(
            self.client._http,
            project_id,
            "lookup",
            self.client._base_url,
            request_pb,
            _datastore_pb2.LookupResponse,
        )