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' % name)
def _imm_init_setattr ( self , name , value ) : 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 ) object . __getattribute__ ( self , '__dict__' ) [ name ] = value else : raise TypeError ( 'Attempt to change non-parameter \'%s\' of initializing immutable' % name )
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.