'Gets the Field object at the specified index, which may be either
an integer or the Field\'s string label.  Note that the Field object
is not the field\'s _value_ -- use the `get` method instead to
retrieve the value (e.g. an integer) instead of a Field instance.'

def __getitem__(self, index):

    if isinstance(index, six.string_types):
        i = self.index(index)
    else:
        if ((index < 0) or (index > self.num_fields)):
            raise OGRIndexError('index    out    of    range')
        i = index
    return Field(self, i)
