'Get a field of the array. Returns a field, or raise MissingField
exception if the field doesn\'t exist.'

def __getitem__(self, index):

    try:
        value = self._cache[index]
    except KeyError:
        try:
            value = self.fieldset[(self._format % index)]
        except MissingField:
            self._known_size = True
            raise
        self._cache[index] = value
        self._max_index = max(index, self._max_index)
    return value
