'Get the named/indexed field object, or ``default`` if no field
is found.'

def get(self, name, index=None, default=NoDefault):

    fields = self.fields.get(name)
    if ((fields is None) and (default is not NoDefault)):
        return default
    if (index is None):
        return self[name]
    else:
        fields = self.fields.get(name)
        assert (fields is not None), ('No    fields    found    matching    %r' % name)
        field = fields[index]
        return field
