code: def methods(self):
          
          done = {}
          for astroid in itertools.chain(iter((self,)), self.ancestors()):
              for meth in astroid.mymethods():
                  if meth.name in done:
                      continue
                  done[meth.name] = None
                  yield meth
docs: Iterate over all of the method defined in this class and its parents.
  
          :returns: The methods defined on the class.
          :rtype: iterable(FunctionDef)