code: def getmembers(object, predicate=None):
      
      results = []
      for key in dir(object):
          value = getattr(object, key)
          if not predicate or predicate(value):
              results.append((key, value))
      results.sort()
      return results
docs: Return all members of an object as (name, value) pairs sorted by name.
      Optionally, only return members that satisfy a given predicate.