Написать декоратор класса dumper(cls), который будет добавлять (или подменять) строковое представление экземпляра класса так:
Строка содержит информацию о всех атрибутах класса, имя которых не начинается на «"_"»
Если поле числовое или строковое, в строку добавляется имя=значение (без кавычек)
Если атрибут — это метод (и только метод), добавляется имя(параметры), где параметры — это имена формальных параметров через запятую с пробелом (см. пример).
В остальных случаях добавляется имя: имя_типа
Это по сути просто упражнение на inspect, для правильного ответа надо использовать getmembers, ismethod, signature, а также numbers.Number и класс.__name__.
В частности, не нужно искать всё, чего не нашёл getmembers(), например, слоты
Обратите также внимание на то, что signature() отъедает из параметров метода self.
a=1; b=QQ; c: list; foo(d)