<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def list(self, pattern='*'):
 """Returns a list of resource descriptors that match the filters. Args: pattern: An optional pattern to further filter the descriptors. This can include Unix shell-style wildcards. E.g. ``"aws*"``, ``"*cluster*"``. Returns: A list of ResourceDescriptor objects that match the filters. """

    if self._descriptors is None:
      self._descriptors = self._client.list_resource_descriptors(
          filter_string=self._filter_string)
    return [resource for resource in self._descriptors
            if fnmatch.fnmatch(resource.type, pattern)]