code: def _set_value(self, new_value):
          if self.min_value is not None and new_value < self.min_value:
              raise SettingOutOfBounds(
                  "Trying to set parameter {0} = {1}, which is less than the minimum allowed {2}".format(
                      self.name, new_value, self.min_value))
          if self.max_value is not None and new_value > self.max_value:
              raise SettingOutOfBounds(
                  "Trying to set parameter {0} = {1}, which is more than the maximum allowed {2}".format(
                      self.name, new_value, self.max_value))
          if self.has_auxiliary_variable():
              with warnings.catch_warnings():
                  warnings.simplefilter("always", RuntimeWarning)
                  warnings.warn("You are trying to assign to a parameter which is either linked or "
                                "has auxiliary variables. The assignment has no effect.", RuntimeWarning)
          if self._transformation is None:
              new_internal_value = new_value
          else:
              new_internal_value = self._transformation.forward(new_value)
          if new_internal_value != self._internal_value:
              self._internal_value = new_internal_value
              for callback in self._callbacks:
                  try:
                      callback(self)
                  except:
                      raise NotCallableOrErrorInCall("Could not call callback for parameter %s" % self.name)