code: def find(self, *, name: str=None, type_: str=None,
               f: Callable=None) -> Iterator[Field]:
          
          for field in self._table:
              if name is not None and field.name.value != name:
                  continue
  
              descriptor = field.descriptor.value
              if type_ is not None and type_ != descriptor:
                  continue
  
              if f is not None and not f(field):
                  continue
  
              yield field
docs: Iterates over the fields table, yielding each matching method. Calling
          without any arguments is equivalent to iterating over the table.
  
          :param name: The name of the field(s) to find.
          :param type_: The field descriptor (Ex: 'I')
          :param f: Any callable which takes one argument (the field).