code: def _imm_init_setattr(self, name, value):
      '''
      An immutable's initial setattr allows only param's to be set and does not run checks on the new
      parameters until a full parameter-set has been specified, at which point it runs all checks and
      switches over to a normal setattr and getattr method.
      '''
      params = _imm_param_data(self)
      if name in params:
          tx_fn = params[name][1]
          value = value if tx_fn is None else tx_fn(value)
          # Set the value
          object.__getattribute__(self, '__dict__')[name] = value
          # No checks are run, as we're in initialization mode...
      else:
          raise TypeError(
              'Attempt to change non-parameter \'%s\' of initializing immutable' % namef _imm_init_setattr(self, name, value):
      '''
      An immutable's initial setattr allows only param's to be set and does not run checks on the new
      parameters until a full parameter-set has been specified, at which point it runs all checks and
      switches over to a normal setattr and getattr method.
      '''
      params = _imm_param_data(self)
      if name in params:
          tx_fn = params[name][1]
          value = value if tx_fn is None else tx_fn(value)
          # Set the value
          object.__getattribute__(self, '__dict__')[name] = value
          # No checks are run, as we're in initialization mode...
      else:
          raise TypeError(
              'Attempt to change non-parameter \'%s\' of initializing immutable' % name)
docs: An immutable's initial setattr allows only param's to be set and does not run checks on the new
      parameters until a full parameter-set has been specified, at which point it runs all checks and
      switches over to a normal setattr and getattr method.