code: def listclasses(self):
      dir, file = os.path.split(self.file)
      name, ext = os.path.splitext(file)
      if os.path.normcase(ext) != ".py":
          return []
      try:
          dict = pyclbr.readmodule_ex(name, [dir] + sys.path)
      except ImportError:
          return []
      items = []
      self.classes = {}
      for key, cl in dict.items():
          if cl.module == name:
              s = key
              if hasattr(cl, "super") and cl.super:
                  supers = []
                  for sup in cl.super:
                      if type(sup) is type(""):
                          sname = sup
                      else:
                          sname = sup.name
                          if sup.module != cl.module:
                              sname = "%s.%s" % (sup.module, sname)
                      supers.append(sname)
                  s = s + "(%s)" % ", ".join(supers)
              items.append((cl.lineno, s))
              self.classes[s] = cl
      items.sort()
      list = []
      for item, s in items:
          list.append(s)
      return list
  
imports: import os
  import sys
  import pyclbr
  from idlelib import PyShell
  from idlelib.WindowList import ListedToplevel
  from idlelib.TreeWidget import TreeNode, TreeItem, ScrolledCanvas
  from idlelib.configHandler import idleConf
label_desc: Use image node_id 7 for calling the ModuleBrowserTreeItem obj's underlying member method code with example usage: obj.listclasses() and returns: list, list, list