def __init__(self, factory, conditional = lambda:True, optional = False, constant = False):
        """
        @param factory: Call back call before read or write type
        @param conditional :    Callable object
                                 Read and Write operation depend on return of this function
        @param optional:   If there is no enough byte in current stream
                            And optional is True, read type is ignored
        @param constant:   Check if object value doesn't change after read operation
        """
        Type.__init__(self, conditional, optional, constant)
        self._factory = factory
        if not callable(factory):
            self._factory = lambda:factory

        self._value = None
def __init__ ( self , factory , conditional = lambda : True , optional = False , constant = False ) : Type . __init__ ( self , conditional , optional , constant ) self . _factory = factory if not callable ( factory ) : self . _factory = lambda : factory self . _value = None
@param factory: Call back call before read or write type
        @param conditional :    Callable object
                                 Read and Write operation depend on return of this function
        @param optional:   If there is no enough byte in current stream
                            And optional is True, read type is ignored
        @param constant:   Check if object value doesn't change after read operation