code: def param_alter(self,
                      param,
                      default=None,
                      unit=None,
                      descr=None,
                      tomatrix=None,
                      nonzero=None,
                      mandatory=None,
                      power=None,
                      voltage=None,
                      current=None,
                      z=None,
                      y=None,
                      r=None,
                      g=None,
                      dccurrent=None,
                      dcvoltage=None,
                      time=None,
                      **kwargs):
          
          assert param in self._data, \
              'parameter <{}> does not exist in {}'.format(param, self._name)
  
          def alter_attr(p, attr, value):
              """Set self.__dict__[attr] for param based on value
              """
              if value is None:
                  return
              elif (value is True) and (p not in self.__dict__[attr]):
                  self.__dict__[attr].append(p)
              elif (value is False) and (p in self.__dict__[attr]):
                  self.__dict__[attr].remove(p)
              else:
                  self.log('No need to alter {} for {}'.format(attr, p))
  
          if default is not None:
              self._data.update({param: default})
          if unit is not None:
              self._units.update({param: unit})
          if descr is not None:
              self._descr.update({param: descr})
  
          alter_attr(param, '_params', tomatrix)
          alter_attr(param, '_zeros', nonzero)
          alter_attr(param, '_mandatory', mandatory)
          alter_attr(param, '_powers', power)
          alter_attr(param, '_voltages', voltage)
          alter_attr(param, '_currents', current)
          alter_attr(param, '_z', z)
          alter_attr(param, '_y', y)
          alter_attr(param, '_r', r)
          alter_attr(param, '_g', g)
          alter_attr(param, '_dcvoltages', dcvoltage)
          alter_attr(param, '_dccurrents', dccurrent)
          alter_attr(param, '_times', time)
docs: Set attribute of an existing parameter.
          To be used to alter an attribute inherited from parent models.
  
          See .. self.param_define for argument descriptions.