code: def _copyValues(self, to, extra=None):
          
          paramMap = self._paramMap.copy()
          if extra is not None:
              paramMap.update(extra)
          for param in self.params:
              # copy default params
              if param in self._defaultParamMap and to.hasParam(param.name):
                  to._defaultParamMap[to.getParam(param.name)] = self._defaultParamMap[param]
              # copy explicitly set params
              if param in paramMap and to.hasParam(param.name):
                  to._set(**{param.name: paramMap[param]})
          return to
docs: Copies param values from this instance to another instance for
          params shared by them.
  
          :param to: the target instance
          :param extra: extra params to be copied
          :return: the target instance with param values copied