<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def rpc(self, name, handler, value, request=None):
 """Perform RPC operation on PV :param name: A single name string or list of name strings :param callable handler: Completion notification. Called with a Value, RemoteError, or Cancelled :param request: A :py:class:`p4p.Value` or string to qualify this request, or None to use a default. :returns: A object with a method cancel() which may be used to abort the operation. """

        chan = self._channel(name)
        if value is None:
            value = Value(Type([]))
        return _p4p.ClientOperation(chan, handler=unwrapHandler(handler, self._nt),
                                    value=value, pvRequest=wrapRequest(request), rpc=True)