@classmethod
def _from_array(cls, data):
    """Constructs an UserArray object from some array data by assigining it
        to the _user_array attribute. If extra computation is necessary to
        correctly initialize the object, subclasses must define the 
        _from_array_init() method, which takes no arguments."""
    new = object.__new__(cls)
    new._user_data = data
    new._from_array_init()
    return new
