code: def describe(cls) -> None:
          
          max_lengths = []
          for attr_name in cls.attr_names():
              attr_func = "%ss" % attr_name
              attr_list = list(map(str, getattr(cls, attr_func)())) + [attr_name]
              max_lengths.append(max(list(map(len, attr_list))))
          row_format = "{:>%d} | {:>%d} | {:>%d}" % tuple(max_lengths)
          headers = [attr_name.capitalize() for attr_name in cls.attr_names()]
          header_line = row_format.format(*headers)
          output = "Class: %s\n" % cls.__name__
          output += header_line + "\n"
          output += "-"*(len(header_line)) + "\n"
          for item in cls:
              format_list = [str(getattr(item, attr_name))
                             for attr_name in cls.attr_names()]
              output += row_format.format(*format_list) + "\n"
          print(output)
docs: Prints in the console a table showing all the attributes for all the
          definitions inside the class
  
          :return: None